JP5825261B2 - Information processing apparatus, method and program thereof - Google Patents

Information processing apparatus, method and program thereof Download PDF

Info

Publication number
JP5825261B2
JP5825261B2 JP2012534967A JP2012534967A JP5825261B2 JP 5825261 B2 JP5825261 B2 JP 5825261B2 JP 2012534967 A JP2012534967 A JP 2012534967A JP 2012534967 A JP2012534967 A JP 2012534967A JP 5825261 B2 JP5825261 B2 JP 5825261B2
Authority
JP
Japan
Prior art keywords
task
processor
data
information
processing
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.)
Active
Application number
JP2012534967A
Other languages
Japanese (ja)
Other versions
JPWO2012039216A1 (en
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
Priority to JP2012534967A priority Critical patent/JP5825261B2/en
Publication of JPWO2012039216A1 publication Critical patent/JPWO2012039216A1/en
Application granted granted Critical
Publication of JP5825261B2 publication Critical patent/JP5825261B2/en
Active 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/54Interprogram communication

Description

本発明は、情報処理装置、その方法及びそのプログラムに関し、特に複数のタスクから構成されるジョブにおいてタスク間でデータを共有しながら処理を行うタスクの実行制御に関連した情報処理装置、その方法及びそのプログラムに関する。   The present invention relates to an information processing apparatus, a method thereof, and a program thereof, and more particularly to an information processing apparatus related to execution control of a task that performs processing while sharing data among tasks in a job composed of a plurality of tasks, and the method thereof Regarding the program.

例えばパケットストリームや音声・画像ストリーム等のストリームデータは、少なくとも1フレーム以上のフレームデータ(1単位の入力データ)から構成される。ストリームデータに対して行われるストリーム処理では、各フレームデータに対して一連の処理(以下ではジョブと称する)が施され、出力データが生成される。フレームデータに対して行われるジョブは、少なくとも1以上の部分処理(以下ではタスクと称する)に分割することができる。   For example, stream data such as a packet stream and an audio / image stream is composed of at least one frame of frame data (one unit of input data). In stream processing performed on stream data, a series of processing (hereinafter referred to as a job) is performed on each frame data, and output data is generated. A job performed on frame data can be divided into at least one or more partial processes (hereinafter referred to as tasks).

分割されたタスクは、異なるプロセッサによって、又は同一のプロセッサであっても異なるプログラムを実行して、あるいは再構成ハードウェア(HW)であれば異なるコンフィギュレーションによって処理すること等が可能である(例えば特許文献1参照)。   The divided tasks can be processed by different processors, by executing different programs even in the same processor, or by different configurations if reconfigurable hardware (HW) (for example, Patent Document 1).

国際公開第2007/029421号(図1−3)International Publication No. 2007/029421 (Figure 1-3)

しかしながら、依存関係にあるタスク間で、外部メモリ上に確保されたバッファを介してデータの受け渡しが行われると、バッファアクセスのオーバーヘッドが発生し、処理に遅延が生じることがある。   However, if data is exchanged between tasks having a dependency relationship via a buffer secured on the external memory, an overhead of buffer access occurs, and processing may be delayed.

そこで、本発明は、バッファアクセスのオーバーヘッドを削減して、処理遅延の発生を防ぐ情報処理装置、その方法及びそのプログラムを提供することを目的とする。   SUMMARY An advantage of some aspects of the invention is that it provides an information processing apparatus, a method thereof, and a program thereof that reduce buffer access overhead and prevent processing delay.

本発明の第1の観点によれば、プロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備える情報処理装置であって、前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、前記タスク管理部、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせる部分であり、前記タスク管理部が、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なうことを特徴とする情報処理装置が提供される。 According to a first aspect of the present invention , there is provided an information processing apparatus including a processing element and a task management unit that controls the operation of the processing element, wherein the processing element executes a process corresponding to a task. And an internal memory accessible by the processor , wherein the task management unit includes at least one input buffer area for storing data to be processed by the processor; the contents of processing to be performed on subject to data processing, before after designating pre SL and at least one region of the output buffer for storing the data of processing results of the processing by the processor, each of Kisho a moiety Ru to perform the management to the processor, the task management unit, based on the dependencies among the tasks The input buffer area related to the dependency relationship and the output buffer area related to the dependency relationship are secured in the internal memory, not in the external memory provided outside the processing element. An information processing apparatus characterized by performing

本発明の第2の観点によれば、プロセッシング要素える情報処理装置が行なう情報処理方法であって、前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、当該情報処理方法では、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせるにあたり、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なうことを特徴とする情報処理方法が提供される。 According to a second aspect of the present invention, an information processing method for an information processing apparatus to obtain Bei the processing elements is performed, the processing element, the processor executes the processing corresponding to the task, and the processor is occupied In the information processing method, including an accessible internal memory, at least one input buffer area for storing the data to be processed by the processor, and the data to be processed by the processor the contents of processing performed, Getting Starte SL and at least one region of the output buffer for storing the data of processing results of the processing by the processor, each pre Kisho management after designating the carry out to the processor per, based on dependencies between the tasks, regions and the dependency input buffer according to the dependencies Area for output buffer involved, rather than an external memory provided outside of said processing elements, information processing method and performs the designated to be secured in the internal memory is provided.

本発明の第3の観点によれば、ロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備える情報処理装置に組み込まれる情報処理プログラムであって、前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、前記タスク管理部、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせる部分であり、前記タスク管理部が、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なう、情報処理装置としてコンピュータを機能させることを特徴とする情報処理プログラムが提供される。 According to a third aspect of the present invention, there is provided an information processing program to be incorporated into the information processing apparatus including a flop Rosesshingu element, and a task management unit for controlling the operation of the processing element, the processing element, the task A processor that executes a corresponding process, and an internal memory that the processor occupies and can access. The task management unit is provided for at least one input buffer that stores data to be processed by the processor . and the region, and the content of the processing to be performed on data that the processor is subject to the treatment, pre SL and at least one region of the output buffer for storing the data of processing results of the processing by the processor, the respective is a portion on which the specified Ru to perform the pre Kisho sense to the processor, the task management unit, Based on the dependencies between serial tasks, area for the output buffer associated to the area and the dependency input buffer related to the dependency, rather than external memory provided outside of said processing elements, wherein There is provided an information processing program for causing a computer to function as an information processing apparatus that performs the designation so as to be secured in an internal memory .

本発明によれば、入力用バッファ及び出力用バッファをプロセッシング要素の外部に設けられた外部メモリに確保するか、内部メモリに確保するかをタスク間の依存に応じて管理するため、バッファアクセスのオーバーヘッドを削減して、処理遅延の発生を防ぐことが可能となる。   According to the present invention, whether to secure the input buffer and the output buffer in the external memory provided outside the processing element or in the internal memory is managed according to the dependency between tasks. It is possible to reduce overhead and prevent occurrence of processing delay.

本発明の一実施形態に係る情報処理システムにおいて実行されるジョブの詳細を示す図である。It is a figure which shows the detail of the job performed in the information processing system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る情報処理システムの一般的な構成を示す図である。It is a figure which shows the general structure of the information processing system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る情報処理システムにおいて参照されるタスク情報の詳細を示す図である。It is a figure which shows the detail of the task information referred in the information processing system which concerns on one Embodiment of this invention. 本発明の一実施形態に係るタスク管理情報の一例を示す図である。It is a figure which shows an example of the task management information which concerns on one Embodiment of this invention. 本発明の一実施形態に係るタスク管理情報に含まれるタスクキューの詳細な構成の一例を示す図である。It is a figure which shows an example of a detailed structure of the task queue contained in the task management information which concerns on one Embodiment of this invention. 本発明の一実施形態に係る互いに依存関係にある複数ジョブの一例を示す図である。It is a figure which shows an example of the several job which has a mutually dependent relationship based on one Embodiment of this invention. 本発明の実施形態に係る複数のジョブにおいて同一種類のタスク間に成立する依存関係をさらに詳細に示す図である。It is a figure which shows in more detail the dependence relationship materialized between the same kind tasks in the some job which concerns on embodiment of this invention. 本発明の一実施形態に係る、プロセッサからバッファ領域へのアクセスの様子を示す図である。It is a figure which shows the mode of access to the buffer area | region from the processor based on one Embodiment of this invention. 本発明の一実施形態に係る、3つのタスクが実行される場合の、各タスクのタスク情報の設定の一例を示す図である。It is a figure which shows an example of the setting of the task information of each task when three tasks are performed based on one Embodiment of this invention. 本発明の一実施形態に係る、3つのタスクが実行される場合の、各タスクのタスク情報の設定の他の一例を示す図である。It is a figure which shows another example of the setting of the task information of each task when three tasks are performed based on one Embodiment of this invention. 本発明の一実施形態に係るタスク管理動作の一例を示すフローチャートである。It is a flowchart which shows an example of the task management operation | movement which concerns on one Embodiment of this invention. 本発明の一実施形態に係るタスク情報を受け取ったプロセッサの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the processor which received the task information which concerns on one Embodiment of this invention.

100 タスク情報
110 入力ポートセット
111 入力ポートアドレス
112 入力ポート制御情報
120 出力ポートセット
121 出力ポートアドレス
122 出力ポート制御情報
130 タスク識別子(TID)
140 プログラム識別子(PID)
150 タスク管理情報
160 ストリーム識別子
300 タスク
310 タスク処理
400 ジョブ
410 ジョブ入力ポート
420 ジョブ出力ポート
500 プロセッシング要素(PE)
501 プロセッサ
502 実行制御部
503 内部メモリ
510 外部メモリ
520 通信路
530 タスク管理部
600 タスク群管理情報
610 タスクキュー
611 タスクバッファ
612 プログラム識別子(PID)
613 タスクキュー管理情報
614 タスク情報
100 Task information 110 Input port set 111 Input port address 112 Input port control information 120 Output port set 121 Output port address 122 Output port control information 130 Task identifier (TID)
140 Program identifier (PID)
150 Task management information 160 Stream identifier 300 Task 310 Task processing 400 Job 410 Job input port 420 Job output port 500 Processing element (PE)
501 Processor 502 Execution control unit 503 Internal memory 510 External memory 520 Communication path 530 Task management unit 600 Task group management information 610 Task queue 611 Task buffer 612 Program identifier (PID)
613 Task queue management information 614 Task information

以下では、本発明の実施形態について、図面を参照して説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1は、本発明の一実施形態に係る情報処理システムにおいて実行されるジョブの詳細を示す図である。   FIG. 1 is a diagram showing details of a job executed in an information processing system according to an embodiment of the present invention.

図1に示すように、1つのジョブ400は、少なくとも1つ以上のタスクに分割することが可能である。   As shown in FIG. 1, one job 400 can be divided into at least one task.

タスク処理部Task1は、タスク300に対応する処理機能を実現する。タスク処理部Task1は、具体的にはプロセッサとそのプログラム又は、再構成可能ハードウェア(HW)とそのコンフィギュレーション等によって実現される。   The task processing unit Task1 realizes a processing function corresponding to the task 300. Specifically, the task processing unit Task1 is realized by a processor and its program, or reconfigurable hardware (HW) and its configuration.

タスク処理部Task1は、処理の対象となる入力データが入力する入力ポートIport1と、処理結果データが出力される出力ポートOport1を具備する。入力ポートIport1と出力ポートOport1は、それぞれ対応するバッファBuf1とBuf4に接続されている。   The task processing unit Task1 includes an input port Iport1 through which input data to be processed is input and an output port Oport1 through which processing result data is output. The input port Iport1 and the output port Oport1 are connected to the corresponding buffers Buf1 and Buf4, respectively.

入力ポートIport1に接続されたバッファBuf1に必要なデータがバッファされ、出力ポートOport1に接続されたバッファBuf4への書き込みが可能となると、タスク処理部Task1は、他のタスクとは独立に処理を実行することが可能となる。   When necessary data is buffered in the buffer Buf1 connected to the input port Iport1, and writing to the buffer Buf4 connected to the output port Oport1 becomes possible, the task processing unit Task1 executes processing independently of other tasks It becomes possible to do.

図1に示す例では、タスク処理部Task1の入力ポートIport1にバッファBuf1が、また出力ポートOport2にバッファBuf4接続されて、1つのタスク300が構成されている。しかしながら、タスク処理部は複数の入力ポート、複数の出力ポート、又はその双方を備えていてもよい。例えばタスク処理部Task4〜Task7のそれぞれは、2つの入力ポートIport1とIport2と1つの出力ポートOport1を具備している。これらの2つの入力ポートには、それぞれ異なるバッファが接続される。   In the example shown in FIG. 1, one task 300 is configured by connecting the buffer Buf1 to the input port Iport1 of the task processing unit Task1 and the buffer Buf4 to the output port Oport2. However, the task processing unit may include a plurality of input ports, a plurality of output ports, or both. For example, each of the task processing units Task4 to Task7 includes two input ports Iport1 and Iport2 and one output port Oport1. Different buffers are connected to these two input ports.

図1に示すジョブ400は、7個のタスク処理部Task1〜Task7と10個のバッファBuf1〜Buf10を含む。これらのタスク処理部Task1〜Task7に対応して、ジョブ400は複数のタスクに分割され得る。   A job 400 shown in FIG. 1 includes seven task processing units Task1 to Task7 and ten buffers Buf1 to Buf10. Corresponding to these task processing units Task1 to Task7, the job 400 can be divided into a plurality of tasks.

タスク処理部Task2〜Task7も、タスク処理部Task1と同様な構成を有し、対応するタスク処理の機能を実現する。なお、1つのジョブ400が備えるタスク処理部の数は、7に限定されるわけではない。   The task processing units Task2 to Task7 also have the same configuration as the task processing unit Task1, and realize the corresponding task processing function. Note that the number of task processing units included in one job 400 is not limited to seven.

ジョブ400を構成する複数のタスクは互いに依存関係にあり、何れかのタスクの出力結果が、別のタスクの入力データとして利用されてもよい。各タスクについて、入力用のバッファ(当該タスクがアクセスする入力データが格納されているバッファ)と、当該タスクの処理結果が出力される出力用のバッファの情報は、タスク情報100(図3参照)に基づいて管理される。タスク情報100に基づいて、それぞれのタスクについて適切な入出力用のバッファが指定され、タスク間でのデータの受け渡しが行われる。   A plurality of tasks constituting the job 400 are dependent on each other, and the output result of any task may be used as input data of another task. For each task, information about an input buffer (a buffer in which input data accessed by the task is stored) and an output buffer from which the processing result of the task is output is the task information 100 (see FIG. 3). Managed based on. Based on the task information 100, an appropriate input / output buffer is designated for each task, and data is exchanged between the tasks.

例えばタスク処理ProcAを実行するタスク処理部Task1によるタスクは、このタスク処理部Task1と、入力ポートIport1に接続されたバッファBuf1と、出力ポートOport1に接続されたバッファBuf4とから構成される。   For example, a task by the task processing unit Task1 that executes the task processing ProcA includes the task processing unit Task1, a buffer Buf1 connected to the input port Iport1, and a buffer Buf4 connected to the output port Oport1.

更にバッファBuf4は、他のタスクを実行するためのタスク処理部Task4の入力ポートIport1にも接続され、この接続を介して、2つのタスクTask1とTask4とは互いに依存関係にあることになる。   Further, the buffer Buf4 is also connected to the input port Iport1 of the task processing unit Task4 for executing another task, and the two tasks Task1 and Task4 are dependent on each other through this connection.

ジョブ400は3つのジョブ入力ポート410と4つのジョブ出力ポート420を備えている。外部からの入力データはジョブ入力ポート410から入力され、対応するそれぞれのバッファに格納される。またジョブ400の処理結果は、出力側のバッファに格納され、ジョブ出力ポート420からジョブ400の外部に出力される。このジョブ400の処理結果のデータは、他のジョブによって処理され得る。   The job 400 includes three job input ports 410 and four job output ports 420. Input data from the outside is input from the job input port 410 and stored in the corresponding buffers. Further, the processing result of the job 400 is stored in an output-side buffer, and output from the job output port 420 to the outside of the job 400. The processing result data of the job 400 can be processed by other jobs.

図2は、本発明の一実施形態に係る情報処理システムの一般的な構成を示す図である。   FIG. 2 is a diagram showing a general configuration of an information processing system according to an embodiment of the present invention.

この情報処理システムは、1つの情報処理装置上で実現されてもよい。情報処理システムは、1又は複数のプロセッシング要素(PE)500、外部メモリ510、及びタスク管理部530を含む。これらの各部は、通信路520を介して互いに接続されている。   This information processing system may be realized on one information processing apparatus. The information processing system includes one or more processing elements (PE) 500, an external memory 510, and a task management unit 530. These units are connected to each other via a communication path 520.

プロセッシング要素500は、実際にタスクを処理するハードウェア構成を含み、具体的には、プロセッサ501、実行制御部502、及び内部メモリ503を含む。プロセッサ501は、タスクの処理を実際に行い、実行制御部502は、プロセッサ501によるタスクの実行を制御する。また、内部メモリ503は、プロセッサ501が占有してアクセスすることのできるメモリである。   The processing element 500 includes a hardware configuration that actually processes a task, and specifically includes a processor 501, an execution control unit 502, and an internal memory 503. The processor 501 actually performs task processing, and the execution control unit 502 controls task execution by the processor 501. The internal memory 503 is a memory that the processor 501 can occupy and access.

プロセッサ501及び実行制御部502は、タスクの実行に際して、タスク情報100(図3参照)を参照する。   The processor 501 and the execution control unit 502 refer to the task information 100 (see FIG. 3) when executing a task.

外部メモリ510は、処理対象となるデータや処理内容を定義するプログラム等を格納する記憶装置である。   The external memory 510 is a storage device that stores data to be processed, programs for defining processing contents, and the like.

タスク管理部530は、アプリケーションを構成するジョブやタスクを管理する管理機能を実現する。タスク管理部530は、外部からのデータの到着に応じて予め指定された処理を当該データに施してジョブ管理を行う。またタスク管理部530は、ジョブ内のタスクの実行状況に応じて、次に実行すべきタスクを動的に選択し、タスクの実行と、タスクの実行に必要なプログラムロードのスケジュール管理を動的に行う。   The task management unit 530 realizes a management function for managing jobs and tasks that constitute an application. The task management unit 530 performs job management by performing a predetermined process on the data according to the arrival of data from the outside. Also, the task management unit 530 dynamically selects a task to be executed next according to the execution status of the task in the job, and dynamically manages the execution of the task and the schedule management of the program load necessary for the execution of the task. To do.

図3は、本発明の一実施形態に係る情報処理システムにおいて参照されるタスク情報の詳細を示す図である。   FIG. 3 is a diagram showing details of task information referred to in the information processing system according to the embodiment of the present invention.

図3に示すように、タスク情報100は一例として、入力ポートセット110、出力ポートセット120、タスク識別子(TID)130、プログラム識別子(PID)140、タスク管理情報150、及びストリーム識別子(SID)160等の項目を含む。   As illustrated in FIG. 3, the task information 100 includes, as an example, an input port set 110, an output port set 120, a task identifier (TID) 130, a program identifier (PID) 140, task management information 150, and a stream identifier (SID) 160. Etc. are included.

タスク識別子130はタスク情報100に対応するタスクを指定し、プログラム識別子140は当該タスクの処理内容を指定する。   The task identifier 130 designates a task corresponding to the task information 100, and the program identifier 140 designates processing contents of the task.

タスクの実行管理に必要とされるその他の情報は、例えばタスク管理情報150として管理される。また、ストリーム識別子160は、依存関係を持つ可能性があるタスクを識別するための識別子であり、例えば同一のグループ(ストリーム)に属しているタスクについては、同一の識別子が割り当てられてもよい。   Other information necessary for task execution management is managed as task management information 150, for example. The stream identifier 160 is an identifier for identifying a task that may have a dependency. For example, tasks belonging to the same group (stream) may be assigned the same identifier.

入力ポートセット110は、タスク処理の入力データが格納される、少なくとも1以上のバッファをアドレス指定するための情報を含む。入力ポートセット110は、少なくとも1つの入力ポートアドレス111と、入力ポートアドレスに応じた入力ポート制御情報(IF)112を含む。   The input port set 110 includes information for addressing at least one or more buffers in which task processing input data is stored. The input port set 110 includes at least one input port address 111 and input port control information (IF) 112 corresponding to the input port address.

入力ポートアドレス111は、入力データが格納されるバッファをアドレス指定する。入力ポート制御情報112は、当該バッファに入力する入力データが、外部メモリ510に確保されたバッファから入力されるか、あるいは内部メモリ503に確保されたバッファから入力されるかを判定するための情報である。   Input port address 111 addresses a buffer in which input data is stored. The input port control information 112 is information for determining whether input data to be input to the buffer is input from a buffer secured in the external memory 510 or from a buffer secured in the internal memory 503. It is.

出力ポートセット120は、タスクの処理結果データが出力される、少なくとも1以上のバッファをアドレス指定するための情報を含む。出力ポートセット120は、少なくとも1つの出力ポートアドレス121と、出力ポートアドレスに応じた出力ポート制御情報(OF)122を含む。   The output port set 120 includes information for addressing at least one buffer to which task processing result data is output. The output port set 120 includes at least one output port address 121 and output port control information (OF) 122 corresponding to the output port address.

出力ポートアドレス121は、出力データが格納されるバッファをアドレス指定する。出力ポート制御情報122は、出力データを外部メモリ510内のバッファに格納するか、内部メモリ503内のバッファに格納するかを判定するための情報である。   The output port address 121 addresses a buffer in which output data is stored. The output port control information 122 is information for determining whether output data is stored in a buffer in the external memory 510 or a buffer in the internal memory 503.

タスク処理を実行するプロセッサ501は、タスクに対応するタスク情報100を参照し、外部メモリ510内のバッファから入力データを取得するか、あるいは内部メモリ503内のバッファから入力データを取得するかを、入力ポートセット110のIF112の指定に応じて切り替える。同様にプロセッサ501は、出力ポートセット120のIF122の指定に応じて、出力データを外部メモリ510内のバッファに出力するか、内部メモリ503内のバッファへ出力するかを切り替える。   The processor 501 that executes the task processing refers to the task information 100 corresponding to the task and determines whether to acquire input data from the buffer in the external memory 510 or to acquire input data from the buffer in the internal memory 503. Switching is performed according to the designation of the IF 112 of the input port set 110. Similarly, the processor 501 switches whether to output output data to a buffer in the external memory 510 or to a buffer in the internal memory 503 according to the designation of the IF 122 of the output port set 120.

例えば画像ストリームのデコード処理を行う場合、フレームデータ毎にジョブを生成して処理が行われる。すなわち、連続する複数のフレームデータに対応して複数のジョブが生成され、それぞれのジョブは同様の処理を行うタスクに分割される。例えばそれぞれのフレームデータの処理は、ヘッダ解析、ハフマンデコード、逆量子化等の処理を含み、それぞれの処理がタスクとして実行される。   For example, when image stream decoding processing is performed, a job is generated for each frame data and processing is performed. That is, a plurality of jobs are generated corresponding to a plurality of continuous frame data, and each job is divided into tasks for performing similar processing. For example, the processing of each frame data includes processing such as header analysis, Huffman decoding, and inverse quantization, and each processing is executed as a task.

すなわち、複数のフレームデータに対してそれぞれジョブが生成され、それぞれのジョブは、ヘッダ解析タスク、ハフマンデコードタスク、逆量子化等のタスクに分割される。この場合、1つのジョブ内に3種類のタスクが存在するが、同一種類のタスクはタスクキューという1つのまとまりとして連続処理することができる。   That is, a job is generated for each of a plurality of frame data, and each job is divided into tasks such as a header analysis task, a Huffman decoding task, and an inverse quantization. In this case, there are three types of tasks in one job, but the same type of tasks can be continuously processed as one group called a task queue.

図4は、本発明の一実施形態に係るタスク管理情報の一例を示す図である。このようなタスク管理情報を用いることで、同じ種類毎にタスク群を管理することが可能になる。   FIG. 4 is a diagram showing an example of task management information according to an embodiment of the present invention. By using such task management information, it becomes possible to manage a task group for each same type.

図4に示すタスク群管理情報600は、1又は複数のタスクキュー610(タスクキュー1〜タスクキューN)を含んでいる。タスクキュー610のそれぞれは、同種類のタスクの情報を格納している。   The task group management information 600 illustrated in FIG. 4 includes one or a plurality of task queues 610 (task queue 1 to task queue N). Each of the task queues 610 stores information on tasks of the same type.

図5は、上述のタスク管理情報に含まれるタスクキューの詳細な構成の一例を示す図である。タスクキュー610は、タスクバッファ611、プログラム識別子(PID)612、及びタスクキュー管理情報613を含む。   FIG. 5 is a diagram illustrating an example of a detailed configuration of a task queue included in the above-described task management information. The task queue 610 includes a task buffer 611, a program identifier (PID) 612, and task queue management information 613.

タスクバッファ611には、タスクの生成順に従って複数のタスク情報614が格納される。タスク情報614のそれぞれは、例えば図3に示すタスク情報100に相当する。   A plurality of pieces of task information 614 are stored in the task buffer 611 according to the task generation order. Each of the task information 614 corresponds to, for example, the task information 100 illustrated in FIG.

プログラム識別子612はタスクの種類の識別に用いられ、図3に示すプログラム識別子140と同様の情報を含む。   The program identifier 612 is used for identifying the type of task, and includes information similar to the program identifier 140 shown in FIG.

タスクキュー管理情報613は、タスクキュー610が管理する複数のタスクの実行管理に必要な情報を含んでいる。タスクキュー管理情報613には、タスクバッファ611に格納されているタスク情報が指定する全てのタスクを実行するのに必要な所要時間(タスクキュー所要処理時間)や、当該全てのタスクの実行を完了すべき時刻(タスクキューデッドライン)が含まれていてもよい。   The task queue management information 613 includes information necessary for execution management of a plurality of tasks managed by the task queue 610. In the task queue management information 613, the time required to execute all tasks specified by the task information stored in the task buffer 611 (task queue required processing time) and the execution of all the tasks are completed. The time (task queue deadline) that should be included may be included.

一般的に、1つのタスクキューにまとめられた連続する同一種類のタスク間にも、依存関係が成立することがある。   In general, a dependency relationship may be established between the same type of tasks that are grouped in one task queue.

図6は、互いに依存関係にある複数ジョブの一例を示す図であり、図6に示す例では、4つのジョブJobj(j=1~4)が図示されている。   FIG. 6 is a diagram illustrating an example of a plurality of jobs that are dependent on each other. In the example illustrated in FIG. 6, four jobs Jobj (j = 1 to 4) are illustrated.

ジョブJobj(j=1~4)は、2つのジョブ入力ポート処理Iport1,jとIport2,j、2つのジョブ出力ポートOport1,jとOport2,j、タスク処理ProcAを行うタスク処理部Task1,j、タスク処理ProcBを行うタスク処理部Task2, j、及び5つのバッファBuf1,j〜Buf5,jを含んでいる。   The job Jobj (j = 1 to 4) includes two job input port processes Iport1, j and Iport2, j, two job output ports Oport1, j and Oport2, j, and task processing units Task1, j that perform task processing ProcA, It includes task processing units Task2, j for performing task processing ProcB, and five buffers Buf1, j to Buf5, j.

ジョブJobjでは、ジョブ入力ポートIport1,jとバッファBuf1,jが接続されており、またジョブ入力ポートIport2,jとバッファBuf2,jが接続されている。タスク処理部Task1, jは2つの入力ポートIport1とOport1を含んでいる。バッファBuf1,jからは入力ポートIport1に入力データが入力し、バッファBuf2,jからは入力ポートIport2に入力データが入力する。   In job Jobj, job input port Iport1, j and buffer Buf1, j are connected, and job input port Iport2, j and buffer Buf2, j are connected. The task processing unit Task1, j includes two input ports Iport1 and Oport1. Input data is input to the input port Iport1 from the buffer Buf1, j, and input data is input to the input port Iport2 from the buffer Buf2, j.

タスク処理部Task1, jはこれらの入力データに対して処理ProcAで指定されるタスク処理を施す。タスク処理部Task1, jは、2つの出力ポートOport1とOport2を含んでおり、Oport1から出力される処理結果データはバッファBuf3,jに、Oport2から出力される処理結果データはバッファBuf5,jにそれぞれ格納される。
また、タスク処理部Task2, jは入力ポートIport1と出力ポートOport1を含んでいる。バッファBuf3,jに格納されたデータは、タスク処理部Task2,jの入力ポートIport1に入力される。タスク処理部Task2,jはこの入力データに対して処理ProcBで指定されるタスク処理を施す。タスク処理部Task2,jの処理結果データは、バッファBuf4,jに格納される。
The task processing units Task1, j perform task processing specified by the processing ProcA on these input data. The task processing units Task1 and j include two output ports Oport1 and Oport2. Processing result data output from Oport1 is stored in buffer Buf3, j, and processing result data output from Oport2 is stored in buffer Buf5, j. Stored.
The task processing units Task2, j include an input port Iport1 and an output port Oport1. The data stored in the buffer Buf3, j is input to the input port Iport1 of the task processing unit Task2, j. The task processing unit Task2, j performs the task processing specified by the processing ProcB on this input data. The processing result data of the task processing unit Task2, j is stored in the buffer Buf4, j.

バッファBuf4,jはジョブ出力ポートOport1,jに、バッファBuf5, jはジョブ出力ポートOport2,jに接続されている。このため、タスク処理部Task1,jの処理結果データはバッファBuf5,jを介してジョブ出力ポートOport2,jに出力され、タスク処理部Task2,jの処理結果データはBuf4,jを介してジョブ出力ポートOport2,jに出力される。   The buffer Buf4, j is connected to the job output port Oport1, j, and the buffer Buf5, j is connected to the job output port Oport2, j. Therefore, the processing result data of the task processing unit Task1, j is output to the job output port Oport2, j via the buffer Buf5, j, and the processing result data of the task processing unit Task2, j is output to the job via Buf4, j Output to port Oport2, j.

図6に示す例では、ジョブJobjのジョブ出力ポートOport2,jが、次のジョブJobj+1のジョブ入力ポートIport1,j+1に接続されている。すなわち、前後のジョブの間で依存関係が成立している。   In the example shown in FIG. 6, the job output port Oport2, j of the job Jobj is connected to the job input port Iport1, j + 1 of the next job Jobj + 1. That is, a dependency relationship is established between the preceding and succeeding jobs.

図6に示す最初のジョブJob1の出力データの1系統は、後続のジョブJob2の一方の入力ポートに入力する。すなわち、ジョブJob1の一方の出力ポートOport2,1は、後続のジョブJob2の一方の入力ポートIport1,2に接続されている。   One line of output data of the first job Job1 shown in FIG. 6 is input to one input port of the subsequent job Job2. That is, one output port Oport2,1 of job Job1 is connected to one input port Iport1,2 of subsequent job Job2.

このような経路を介して、ジョブJob1のタスク処理部Task1,1と、ジョブJob2の同種類のタスク処理部Task1,2との間には依存関係が成立する。   Through such a route, a dependency relationship is established between the task processing unit Task1,1 of the job Job1 and the task processing unit Task1,2 of the same type of the job Job2.

ジョブJob2のタスクTask1,2とジョブJob3のタスクTask1,3との間、及びジョブJob3のタスクTask1,3とジョブJob4のタスクTask1,4にも同様な依存関係が存在する。   Similar dependencies exist between the tasks Task1 and 2 of the job Job2 and the tasks Task1 and 3 of the job Job3, and the tasks Task1 and 3 of the job Job3 and the tasks Task1 and 4 of the job Job4.

図7は、図6に示した複数のジョブにおいて同一種類のタスク間に成立する依存関係をさらに詳細に示す図である。   FIG. 7 is a diagram showing in more detail the dependency relationship established between tasks of the same type in a plurality of jobs shown in FIG.

タスク処理部Task1,i-1の処理結果データは、2つの出力ポートのうちOport2に対応付けられているバッファBuf5,i-1に格納される。続くタスク処理部Task1,iには入力ポートIPort1に対応付けられているバッファBuf1,iからデータが入力する。   The processing result data of the task processing unit Task1, i-1 is stored in the buffer Buf5, i-1 associated with Oport2 of the two output ports. Data is input from the buffers Buf1, i associated with the input port IPort1 to the subsequent task processing units Task1, i.

このような場合に、同一のバッファ領域をバッファBuf5,i-1及びバッファBuf1.iとして重複して指定することで、バッファBuf5,i-1からバッファBuf1,iの間の不要なコピー処理を生じさせない。同様に、バッファBuf5,iとバッファBuf1,i+1についても、不要なコピー処理を削減できる。しかしながら、このようなバッファ領域が外部メモリ510上に確保されると、通信路520を介したメモリアクセスが必要とされ、処理遅延が生じる可能性がある。   In such a case, unnecessary copy processing between the buffer Buf5, i-1 and the buffer Buf1, i can be performed by designating the same buffer area as the buffer Buf5, i-1 and the buffer Buf1.i. Don't make it happen. Similarly, unnecessary copy processing can be reduced for the buffers Buf5, i and the buffers Buf1, i + 1. However, if such a buffer area is secured on the external memory 510, memory access via the communication path 520 is required, which may cause a processing delay.

図8は、本発明の一実施形態に係る、プロセッサからバッファ領域へのアクセスの様子を示す図である。説明の簡単化のため、図8では図2に示した情報処理システムから、説明に関わる部分を抜粋して示している。   FIG. 8 is a diagram showing a state of access to the buffer area from the processor according to an embodiment of the present invention. For simplification of explanation, FIG. 8 shows an excerpt from the information processing system shown in FIG.

図8に示す例では、外部メモリ510の特定の領域において、各バッファが確保されている。この図においては、各バッファがすべて異なる領域に確保されているように示されているが、処理に影響がなければ同じ領域に異なるバッファが確保されてもよい。   In the example illustrated in FIG. 8, each buffer is secured in a specific area of the external memory 510. In this figure, each buffer is shown as being secured in a different area, but different buffers may be secured in the same area as long as the processing is not affected.

タスク情報100は、タスク間の依存関係に従って、個別に実行制御部502に転送される。あるいは、複数タスクのタスク情報100が格納されたタスクキュー610(図5参照)が、依存関係に従って一括して実行制御部502に転送されてもよい。   The task information 100 is individually transferred to the execution control unit 502 according to the dependency relationship between tasks. Alternatively, the task queue 610 (see FIG. 5) storing the task information 100 of a plurality of tasks may be transferred to the execution control unit 502 in a batch according to the dependency relationship.

実行制御部502は、タスク情報100、又はタスクキュー610に格納されているタスク情報612に従って、プロセッサ501の実行を制御する。すなわちタスク処理部310の処理実行に必要なプログラムに従って、プロセッサ501が動作する。   The execution control unit 502 controls the execution of the processor 501 according to the task information 100 or the task information 612 stored in the task queue 610. That is, the processor 501 operates according to a program necessary for execution of processing by the task processing unit 310.

再構成可能プロセッサであれば、プログラムを内部メモリ503に格納した後に当該プログラムを実行したり、プログラムに応じてハードウェアの構成を変えたりすることができる。実行制御部502は、このようなプログラムの内部メモリ503へのロードや、ハードウェア構成の再構成等の制御も行う。   If the processor is a reconfigurable processor, the program can be executed after being stored in the internal memory 503, or the hardware configuration can be changed according to the program. The execution control unit 502 also performs control such as loading of such a program into the internal memory 503 and reconfiguration of the hardware configuration.

プロセッサ501は、タスク情報100の入力ポートセット110、及び出力ポートセット120の情報に基づき、指定されたバッファにアクセスして必要な処理を行う。   The processor 501 performs necessary processing by accessing the designated buffer based on the information of the input port set 110 and the output port set 120 of the task information 100.

内部メモリ503は、一時的なデータの格納に用いられ得るため、処理内容によっては、外部メモリ510におけるバッファの記憶内容の一部を内部メモリ503に転送し、内部メモリ503に対してRead/Writeしながら処理を進めることもできる。その後、最終的な処理結果を、内部メモリ503から外部メモリ510の所定のバッファに転送してもよい。   Since the internal memory 503 can be used for temporary data storage, depending on the processing contents, a part of the storage contents of the buffer in the external memory 510 is transferred to the internal memory 503 and read / write to the internal memory 503 is performed. The process can also proceed. Thereafter, the final processing result may be transferred from the internal memory 503 to a predetermined buffer in the external memory 510.

図示の通り、例えばタスクTask1,i-1の実行では、バッファBuf1,i-1、Buf2,i-1に対してReadアクセス、バッファBuf3,i-1、Buf5,i-1に対してWriteアクセスが生じる。タスクT ask1,i、Task1,i+1の実行でも、同様に外部メモリ510内の2つのバッファへのReadアクセスと2つのバッファへのWriteアクセスが生じる。   As shown in the figure, for example, in the execution of task Task1, i-1, Read access to buffers Buf1, i-1, Buf2, i-1 and Write access to buffers Buf3, i-1, Buf5, i-1 Occurs. In the execution of the tasks T ask1, i and Task1, i + 1, read access to the two buffers in the external memory 510 and write access to the two buffers similarly occur.

タスク同士が互いに独立に実行されると、外部メモリ510のバッファへのアクセスがタスクの実行毎に発生する。すなわち、タスク間でのデータの受け渡しは、外部メモリ510 に確保されたバッファを介して行うことになる。従って、連続するタスク間に依存関係があり、直前に実行されたタスクの処理結果を次のタスクが読み込む場合、先に外部メモリ内のバッファに格納されたデータを、改めて当該バッファから読み込まなくてはならない。   When tasks are executed independently of each other, access to the buffer of the external memory 510 occurs every time the task is executed. In other words, data exchange between tasks is performed via a buffer secured in the external memory 510. Therefore, there is a dependency between consecutive tasks, and when the next task reads the processing result of the task executed immediately before, the data stored in the buffer in the external memory first must not be read from the buffer again. Must not.

外部メモリ510は、通信路520を経由したアクセスによって、複数のプロセッシング要素で共有して使用される。このため一般的には、プロセッサ501が占有して使える内部メモリ503に比べて、外部メモリ510へのアクセスは遅延が大きい。また、他のプロセッシング要素とのアクセス競合のため、外部メモリ510へのアクセスに遅延を引き起こされる可能性もある。このため、タスクの処理に際して、外部メモリ510へのアクセスを削減して遅延を削減することが望まれる。   The external memory 510 is shared and used by a plurality of processing elements by access via the communication path 520. For this reason, in general, access to the external memory 510 has a larger delay than the internal memory 503 that can be occupied and used by the processor 501. In addition, there may be a delay in access to the external memory 510 due to access contention with other processing elements. For this reason, it is desirable to reduce the delay by reducing access to the external memory 510 when processing the task.

本実施形態に係る情報処理システムでは、タスクキュー610にまとめられた同種のタスクは、同一のプロセッサ501の同一のプログラムによって実行される。すなわち、外部メモリ510ではなくプロセッサ501が占有して利用可能な内部メモリ503にバッファ領域を確保しデータを受け渡す。   In the information processing system according to the present embodiment, the same type of tasks collected in the task queue 610 are executed by the same program of the same processor 501. In other words, the buffer area is reserved in the internal memory 503 that can be used by the processor 501 instead of the external memory 510, and the data is transferred.

依存関係にある複数のタスクを同一のプロセッサ501によって連続して処理する場合に、当該プロセッサ501に接続された内部メモリ503にバッファ領域を確保することで、外部メモリ510へのアクセスを抑制することができる。従って、外部メモリ510を介したデータの受け渡しに比べてオーバーヘッド(すなわち遅延)を削減できるようになる。   When a plurality of tasks having dependency relations are continuously processed by the same processor 501, the access to the external memory 510 is suppressed by securing a buffer area in the internal memory 503 connected to the processor 501. Can do. Accordingly, it is possible to reduce overhead (ie, delay) as compared with data transfer via the external memory 510.

図8に示すように、タスクTask1,i-1の実行では、バッファBuf1,i-1、Buf2,i-1に対してReadアクセス、バッファBuf3,i-1、Buf5,i-1に対してWriteアクセスが生じる。このうちバッファBuf5,i-1は、後続するタスクTask1,iの実行において、入力ポートIport1からReadアクセスされる。   As shown in FIG. 8, in the execution of tasks Task1 and i-1, read access is made to buffers Buf1, i-1, Buf2, and i-1, and buffers Buf3, i-1, and Buf5, i-1. Write access occurs. Among them, the buffer Buf5, i-1 is read-accessed from the input port Iport1 in the subsequent execution of the tasks Task1, i.

そこで、このバッファBuf5,i-1に相当するバッファ領域を、内部メモリ503内に内部メモリBufとして確保する。これによって、タスクTask1,i-1の結果を当該バッファBufに格納し、タスクTask1,iの実行の際は、バッファBufに格納された結果を参照することができる。従って、外部メモリ510内のバッファBuf5,i-1へのWriteアクセス及びReadアクセスをそれぞれ削減することができる。   Therefore, a buffer area corresponding to the buffers Buf5, i-1 is secured in the internal memory 503 as the internal memory Buf. As a result, the results of the tasks Task1, i-1 are stored in the buffer Buf, and when the tasks Task1, i are executed, the results stored in the buffer Buf can be referred to. Therefore, Write access and Read access to the buffers Buf5, i-1 in the external memory 510 can be reduced, respectively.

同様に、タスクTask1,i-1の処理結果を内部メモリ503内のバッファBufに格納し、タスクTask1,i+1がその結果を参照することで、バッファBuf5,i-1へのWriteアクセス及びReadアクセスをそれぞれ削減できる。   Similarly, the processing result of the task Task1, i-1 is stored in the buffer Buf in the internal memory 503, and the task Task1, i + 1 refers to the result so that the write access to the buffer Buf5, i-1 and Read access can be reduced respectively.

次に依存のあるタスクがあったとしても、当該タスクがTask1,i+1の直後には実行されなければ、タスクTask1,i+1の処理結果は外部メモリ510内のバッファBuf5,i+1に格納してもよい。   Even if there is a next dependent task, if the task is not executed immediately after Task1, i + 1, the processing result of task Task1, i + 1 is the buffer Buf5, i + 1 in the external memory 510. May be stored.

タスクTask1,i+1とタスクTask1,i+2(図示せず)が依存関係にあるが、タスクTask1,i+1 とタスクTask1,i+2とが連続して実行されない場合、タスクTask1,i+1の実行とタスクTask1,i+2の実行の間に異なる種類のタスクTaskX(図示せず)が実行される可能性がある。このような場合は、タスクTaskXが内部メモリ503をバッファ領域Bufとして利用することで、内部バッファBufの内容が破壊される可能性がある。従って、タスクTask1,i+2を実行するときは、タスクTask1,i-1と同様に入力ポートIport1に対応付けられている外部メモリ510のバッファBuf5,i+1から入力データを取得すれば、タスクTask1,i+1の出力結果を正しくタスクTask1,i+2に伝達することができる。   If task Task1, i + 1 and task Task1, i + 2 (not shown) are in a dependency relationship, but task Task1, i + 1 and task Task1, i + 2 are not executed continuously, task Task1, There is a possibility that different types of tasks TaskX (not shown) are executed between the execution of i + 1 and the execution of tasks Task1 and i + 2. In such a case, the task TaskX uses the internal memory 503 as the buffer area Buf, which may destroy the contents of the internal buffer Buf. Therefore, when executing the task Task1, i + 2, if the input data is acquired from the buffer Buf5, i + 1 of the external memory 510 associated with the input port Iport1, as with the task Task1, i-1, The output result of task Task1, i + 1 can be correctly transmitted to task Task1, i + 2.

一般に、同一タスクキュー610内において、依存関係のあるタスクのタスク情報614同士が常に隣接しているわけではない。例えば、2つの入力ストリームのデコードを並列におこなうような場合、それぞれのストリームのフレームデータの処理に必要なタスクに対応するタスク情報614が1つのタスクキュー610内に混在することがある。   In general, in the same task queue 610, task information 614 of tasks having a dependency relationship are not always adjacent to each other. For example, when two input streams are decoded in parallel, task information 614 corresponding to a task necessary for processing the frame data of each stream may be mixed in one task queue 610.

同じストリームに属するフレームデータを処理するタスク間には依存関係があるが、異なるストリームに属するフレームデータを処理するタスク間には通常は依存関係がない。しかしながら、1つのタスクキュー610内のタスク情報614についてタスク処理を行う場合、プロセッサ501は、それぞれのタスク間に依存関係が成り立っているかどうかを判断することができないこともある。このような場合には、内部メモリ503上のバッファを用いてデータの受け渡しができたとしても、外部メモリ510内のバッファを用いたデータの受け渡しが行われてもよい。   There is a dependency between tasks that process frame data belonging to the same stream, but there is usually no dependency between tasks that process frame data belonging to different streams. However, when performing task processing on the task information 614 in one task queue 610, the processor 501 may not be able to determine whether a dependency relationship is established between the tasks. In such a case, even if data can be transferred using the buffer in the internal memory 503, data transfer using the buffer in the external memory 510 may be performed.

タスクを実行するプロセッサ501は、タスク情報を参照して、指定されたタスクの処理を行う。プロセッサ501によって実行されるタスク処理は、プログラム識別子で指定される。具体的なタスク処理は、プロセッサ501のプログラムとして実現されたり、またはプロセッサ501が再構成可能ハードウェアである場合、再構成データにより再構成されたハードウェアとして実現されたりする。   The processor 501 that executes the task refers to the task information and processes the specified task. Task processing executed by the processor 501 is specified by a program identifier. Specific task processing is realized as a program of the processor 501, or when the processor 501 is reconfigurable hardware, it is realized as hardware reconfigured by reconfiguration data.

プロセッサ501は、タスク情報100における入力ポート制御情報(IF1~IFJ)に応じて、入力ポートとの間のアクセス設定を変更する。すなわち、入力ポート制御情報が外部メモリ510を参照するよう設定されている場合(例えば制御情報の設定値=1であるとする)、対応する入力ポートアドレスを参照して外部メモリ510内のバッファから入力データを取得する。一方、タスク情報100において入力ポート制御情報が内部メモリ503を参照するよう設定されている場合(例えば制御情報の設定値=0であるとする)、内部メモリ503内に確保された内部バッファBufのデータを参照する。   The processor 501 changes the access setting with the input port according to the input port control information (IF1 to IFJ) in the task information 100. That is, when the input port control information is set so as to refer to the external memory 510 (for example, the control information setting value = 1), the corresponding input port address is referred to and the buffer in the external memory 510 is referred to. Get input data. On the other hand, when the input port control information is set to refer to the internal memory 503 in the task information 100 (for example, the setting value of the control information = 0), the internal buffer Buf reserved in the internal memory 503 is stored. Browse the data.

内部メモリ503での内部バッファBufのアドレスは、対応する入力ポートアドレスによって指定されてもよい。また、同一のタスク識別子を持つタスクは同じプログラム、又は同じハードウェア構成に対応するため、タスク識別子が同じであるタスク間で内部メモリ503を介してデータの受け渡しをする場合は、プログラムやハードウェア構成に埋め込まれたアドレスを用いて内部メモリ503にアクセスできてもよい。   The address of the internal buffer Buf in the internal memory 503 may be specified by the corresponding input port address. In addition, since tasks having the same task identifier correspond to the same program or the same hardware configuration, when data is transferred between tasks having the same task identifier via the internal memory 503, a program or hardware The internal memory 503 may be accessible using an address embedded in the configuration.

同様にプロセッサ501は、タスク情報100の出力ポート制御情報(OF1~OFJ)に応じて、出力ポートとの間のアクセス設定を変更する。すなわち、出力ポート制御情報の設定が外部メモリ510を参照するよう設定されている場合(例えば制御情報の設定値=1であるとする)、対応する出力ポートアドレスを参照して外部メモリ510内のバッファへ出力データが出力される。一方、タスク情報100において出力ポート制御情報が内部メモリ503へのアクセスを指定している場合(例えば制御情報の設定値=0であるとする)、内部メモリ503内に確保された内部バッファへ出力データが出力される。   Similarly, the processor 501 changes the access setting with the output port according to the output port control information (OF1 to OFJ) of the task information 100. That is, when the setting of the output port control information is set so as to refer to the external memory 510 (for example, the control information setting value = 1), the corresponding output port address is referred to in the external memory 510. Output data is output to the buffer. On the other hand, when the output port control information specifies access to the internal memory 503 in the task information 100 (for example, it is assumed that the setting value of the control information is 0), the output is output to an internal buffer secured in the internal memory 503. Data is output.

内部メモリ503における内部バッファのアドレスは、対応する出力ポートアドレスによって指定されてもよい。また、同一のタスク識別子を持つタスクは同じプログラム、又は同じハードウェア構成に対応するため、タスク識別子が同じであるタスク間で内部メモリ503を介してデータの受け渡しをする場合は、プログラムやハードウェア構成に埋め込まれたアドレスを用いて内部メモリ503にアクセスできてもよい。   The address of the internal buffer in the internal memory 503 may be specified by the corresponding output port address. In addition, since tasks having the same task identifier correspond to the same program or the same hardware configuration, when data is transferred between tasks having the same task identifier via the internal memory 503, a program or hardware The internal memory 503 may be accessible using an address embedded in the configuration.

同一種類のタスクの処理を連続して行う場合、タスク間に依存関係が成立すれば、出力ポート制御情報の設定値を0として、先行タスクの依存を伝えることができる。これによって、出力ポートからの出力データは内部メモリ503のバッファに書き込まれる。その後、続くタスクの対応する入力ポート制御情報の設定値を0とすると、タスク間の依存関係が正しく伝達される。すなわち、続くタスクでは、内部メモリ503から入力データが読み出される。従って、依存関係にあるタスク間でのデータの転送を、内部メモリ503内のバッファを用いて行うことで、オーバーヘッドを削減することができる。   When processing of the same type of task is continuously performed, if a dependency relationship is established between the tasks, the set value of the output port control information is set to 0, and the dependency of the preceding task can be transmitted. As a result, the output data from the output port is written into the buffer of the internal memory 503. Thereafter, when the set value of the input port control information corresponding to the subsequent task is set to 0, the dependency relationship between tasks is correctly transmitted. That is, in the subsequent task, input data is read from the internal memory 503. Therefore, overhead can be reduced by transferring data between tasks having a dependency relationship using a buffer in the internal memory 503.

図9は、図7に示す3つのタスクが実行される場合の、各タスクのタスク情報100の設定の一例を示す図である。   FIG. 9 is a diagram illustrating an example of setting of task information 100 for each task when the three tasks illustrated in FIG. 7 are executed.

タスクキュー600のタスクバッファ611内には、3つのタスクTask1,i-1、Task1,i、及びTask1,i+1それぞれのタスク情報100(すなわちタスク情報614)が格納されている。それぞれのタスク情報100は、入力ポート制御情報112、出力ポート制御情報122を含む。   The task buffer 611 of the task queue 600 stores task information 100 (that is, task information 614) of each of the three tasks Task1, i-1, Task1, i, and Task1, i + 1. Each task information 100 includes input port control information 112 and output port control information 122.

3つのタスクは、プロセッサ501によってタスクTask1,i-1、Task1,i、Task1,i+1の順に実行される。これらのタスク間では依存関係が成立している。   The three tasks are executed by the processor 501 in the order of tasks Task1, i-1, Task1, i, Task1, i + 1. Dependencies are established between these tasks.

しかしながら、図9に示す例では、すべてのタスクについて、入力ポート制御情報112と出力ポート制御情報122の制御値が1に設定されている。このため、データの転送は、入力ポートアドレス111と出力ポートアドレス121で指定される外部メモリ510内のバッファを介して行われる。   However, in the example shown in FIG. 9, the control values of the input port control information 112 and the output port control information 122 are set to 1 for all tasks. Therefore, data transfer is performed via a buffer in the external memory 510 specified by the input port address 111 and the output port address 121.

図10は、図9と同様に3つのタスクが実行される場合の、各タスク情報100の設定の他の一例を示す図である。   FIG. 10 is a diagram illustrating another example of setting of each task information 100 when three tasks are executed as in FIG. 9.

以下では、タスクバッファ611の先頭のタスクTask1,i-1は、プロセッサ501により直前に実行されたタスクとの依存はないものとする。   In the following, it is assumed that the first task Task1, i-1 in the task buffer 611 does not depend on the task executed immediately before by the processor 501.

従って、タスクTask1,i-1への入力データは、外部メモリ510において入力ポートアドレスBuf1,i-1、Buf2,i-1で指定される領域から取得される。入力ポート制御情報IF1、IF2の値はそれぞれ1に設定されており、入力ポートに対応付けられたバッファが外部メモリ510内にあることが示されている。   Therefore, the input data to the tasks Task1, i-1 is acquired from the area specified by the input port addresses Buf1, i-1, Buf2, i-1 in the external memory 510. The values of the input port control information IF1 and IF2 are set to 1, respectively, indicating that the buffer associated with the input port is in the external memory 510.

先頭タスクTask1,i-1の2つの出力ポートのうち出力ポートOport1,i-1は、連続して実行される次のタスクTkas1,iとは依存関係がない。このため、出力ポートOport1,i-1から、外部メモリ510内において出力ポートアドレス1(Buf3,i-1)で指定される領域へ、出力データが送られる。出力ポートアドレス1に対応する出力ポート制御情報OF1の値は1に設定される。   Of the two output ports of the first task Task1, i-1, the output port Oport1, i-1 has no dependency relationship with the next task Tkas1, i to be executed continuously. Therefore, output data is sent from the output port Oport1, i-1 to an area specified by the output port address 1 (Buf3, i-1) in the external memory 510. The value of the output port control information OF1 corresponding to the output port address 1 is set to 1.

一方、先頭タスクTask1,i-1の他方の出力ポートOport2,i-1からの出力データは、直後に実行されるタスクTask1,iの入力ポートIport1,iに入力される。この場合は、内部メモリ503内の内部バッファを介したデータの転送によってオーバーヘッドを削減することが考えられる。従って、対応する出力ポート制御情報OF2の値は0に設定され、内部メモリ503の内部バッファへの出力が指示される。   On the other hand, the output data from the other output port Oport2, i-1 of the first task Task1, i-1 is input to the input port Iport1, i of the task Task1, i to be executed immediately after. In this case, it is conceivable to reduce overhead by transferring data via an internal buffer in the internal memory 503. Accordingly, the value of the corresponding output port control information OF2 is set to 0, and an output to the internal buffer of the internal memory 503 is instructed.

図10の例では、内部メモリ503内の内部バッファのアドレスは、タスクを実行するプログラムに埋め込まれているものとする。従って、出力ポートアドレス2に対応するアドレスを設定する必要は無い。   In the example of FIG. 10, it is assumed that the address of the internal buffer in the internal memory 503 is embedded in a program that executes a task. Therefore, there is no need to set an address corresponding to the output port address 2.

出力ポート制御情報の設定値が0である場合、対応する出力ポートアドレス121に設定されたアドレスが、内部メモリ503内のバッファ領域のアドレスとして利用されてもよい。   When the set value of the output port control information is 0, the address set in the corresponding output port address 121 may be used as the buffer area address in the internal memory 503.

同様に、タスクTask1,iの入力ポートIport1,iの入力ポート制御情報IF1の値は0に設定されており、入力ポートIport1,iには、内部メモリ503内の内部バッファから入力データが入力される。また他方の入力ポート制御情報IF2の値は1に設定されており、外部メモリ510において入力ポートアドレス2(Buf2,i)で指定される領域から入力データが取得される。   Similarly, the value of the input port control information IF1 of the input port Iport1, i of the task Task1, i is set to 0, and input data is input to the input port Iport1, i from the internal buffer in the internal memory 503. The The value of the other input port control information IF2 is set to 1, and the input data is acquired from the area specified by the input port address 2 (Buf2, i) in the external memory 510.

このタスクTask1,iの出力ポートの設定はタスクTask1,i-1と同様であり、出力ポート制御情報OF1の値は1、OF2の値は0に設定されている。   The setting of the output port of task Task1, i is the same as that of task Task1, i-1, the value of output port control information OF1 is set to 1 and the value of OF2 is set to 0.

次のタスクTask1,i+1の入力ポートの設定はタスクTask1,iの入力ポートの設定と同様である。すなわち、タスクTask1,i+1入力ポート制御情報IF1の値は0に、IF2の値は1に設定されている。   The setting of the input port of the next task Task1, i + 1 is the same as the setting of the input port of the task Task1, i. That is, the value of task Task1, i + 1 input port control information IF1 is set to 0, and the value of IF2 is set to 1.

このタスクTask1,i+1は3つのタスクのうち最後のタスクであり、出力結果はすべて外部メモリ510に出力する必要がある。このため、タスクTask1,i+1についての出力ポート制御情報OF1、OF2の値は共に1に設定されている。   This task Task1, i + 1 is the last task among the three tasks, and all output results must be output to the external memory 510. For this reason, the values of the output port control information OF1 and OF2 for the tasks Task1 and i + 1 are both set to 1.

続いて、本発明の一実施形態に係る情報処理システムにおける、タスク管理部530(図2参照)の動作について説明する。   Next, the operation of the task management unit 530 (see FIG. 2) in the information processing system according to an embodiment of the present invention will be described.

上述の通り、1つのタスクキュー610には同一のプログラム(プロセッサが再構成ハードウェアの場合は、同一のハードウェア構成) によって処理される複数のタスクのタスク情報がまとめられている。   As described above, task information of a plurality of tasks processed by the same program (or the same hardware configuration when the processor is reconfigurable hardware) is collected in one task queue 610.

例えば複数の異なるストリームデータを処理する場合は、異なるストリームの処理のためのジョブとそのジョブを構成するタスクが生成され、1つのタスクキュー610に格納されることがある。この場合、ストリームデータの到着順等に依存して、タスクキュー610内では、必ずしも同一ストリームのタスクが連続するわけではない。同一プログラムで実行されるタスクであっても同一のストリームに属さないタスクは依存関係がないので、タスク間の依存は内部メモリを介して転送することはできない。従って、本実施形態に係るタスク管理部530は、次に実行すべきタスクキュー610内のタスクの並べ替えを行い、同一のストリームに属する依存のあるタスクが連続して実行されるようにする。   For example, when processing a plurality of different stream data, a job for processing different streams and a task constituting the job may be generated and stored in one task queue 610. In this case, depending on the arrival order of stream data and the like, tasks in the same stream are not necessarily consecutive in the task queue 610. Even if the tasks are executed by the same program, tasks that do not belong to the same stream have no dependency relationship, so the dependency between tasks cannot be transferred via the internal memory. Therefore, the task management unit 530 according to the present embodiment rearranges the tasks in the task queue 610 to be executed next so that dependent tasks belonging to the same stream are continuously executed.

図11は、本発明の一実施形態に係るタスク管理動作の一例を示すフローチャートである。図11は、プロセッシング要素500で実行するためのタスクキュー610の選択、及びその後に行われる動作を示す。   FIG. 11 is a flowchart showing an example of a task management operation according to an embodiment of the present invention. FIG. 11 illustrates the selection of a task queue 610 for execution by the processing element 500 and the operations that take place thereafter.

タスク管理部530は、各タスクキューのタスクキュー管理情報613に基づいて、次に実行すべきタスクキューを選択する(ステップS100)。   The task management unit 530 selects a task queue to be executed next based on the task queue management information 613 of each task queue (step S100).

タスク管理部530は、選択されたタスクキュー内で、タスクの並べ替えを行う(ステップS110)。このとき、同一ストリームに属するタスクが連続するように並び替えが行われる。ただし、同一ストリームに属するタスク間での順序は変化しないようにする。   The task management unit 530 rearranges the tasks in the selected task queue (step S110). At this time, rearrangement is performed so that tasks belonging to the same stream are continuous. However, the order between tasks belonging to the same stream is not changed.

これは、タスクバッファ611の先頭から順に、同一ストリームに属するタスク情報614を選択することで実現可能である。タスク情報614(すなわちタスク情報100)が属するストリームは、ストリーム識別子160を参照して判定できる。連続するように並び替えられた同一ストリームに属するタスク群は、タスクグループと称される。   This can be realized by selecting task information 614 belonging to the same stream in order from the top of the task buffer 611. The stream to which the task information 614 (that is, the task information 100) belongs can be determined with reference to the stream identifier 160. Task groups belonging to the same stream rearranged so as to be continuous are referred to as task groups.

タスク管理部530は、選択されたタスクキューから1つのタスクグループを選択する(ステップS120)。選択の順序は任意に設定可能であってもよい。   The task management unit 530 selects one task group from the selected task queue (step S120). The order of selection may be arbitrarily set.

タスク管理部530は、選択されたタスクグループの各タスクについて、入力ポート制御情報を設定し(ステップS130)、同様に出力ポート制御情報を設定する(ステップS140)。   The task management unit 530 sets input port control information for each task of the selected task group (step S130), and similarly sets output port control information (step S140).

すなわち、タスク管理部530は、タスク間の依存に関わる入力ポートに対して、タスクグループの先頭のタスクの入力ポート制御情報は1に設定し、先頭以外のタスクの入力ポート制御情報は0に設定する。   That is, the task management unit 530 sets the input port control information of the first task in the task group to 1 and sets the input port control information of the tasks other than the head to 0 for the input ports related to the dependency between tasks. To do.

またタスク管理部530は、タスク間の依存に関わる出力ポートに対して、タスクグループの最後尾のタスクの出力ポート制御情報は1に設定し、最後尾以外のタスクの出力ポート制御情報は0に設定する。   Further, the task management unit 530 sets the output port control information of the last task of the task group to 1 for the output port related to the dependency between tasks, and sets the output port control information of the tasks other than the last to 0. Set.

タスク管理部530は、タスクグループ内の全てのタスクについて、入力ポート制御情報と出力ポート制御情報の設定が完了したか否かを判定する(ステップS150)。タスクグループ内全てのタスクについて設定が完了していなければ(ステップS150でNo)、処理はステップS130に戻り、入力ポート制御情報と出力ポート制御情報の設定が繰り返される。   The task management unit 530 determines whether or not the input port control information and the output port control information have been set for all tasks in the task group (step S150). If the settings for all tasks in the task group have not been completed (No in step S150), the process returns to step S130, and the settings of the input port control information and the output port control information are repeated.

タスクグループ内全てのタスクについて設定が完了したら(ステップS150でYes)、タスク管理部530は、全てのタスクグループについて設定が完了したか否かを判定する(ステップS160)。設定が完了していないタスクグループがあれば(ステップS160でNo)、タスク管理部503は、ステップS120に戻って次のタスクグループを選択し、ステップS130以降の処理を繰り返す。   When the setting is completed for all tasks in the task group (Yes in step S150), the task management unit 530 determines whether the setting is completed for all task groups (step S160). If there is a task group that has not been set (No in step S160), the task management unit 503 returns to step S120, selects the next task group, and repeats the processing from step S130.

全てのタスクグループについて設定が完了していれば(ステップS160でYes)、タスク間のデータ転送の設定が終了する。   If the setting is completed for all task groups (Yes in step S160), the setting of data transfer between tasks is completed.

次に、本発明の一実施形態に係る情報処理システムにおける、プロセッサ501(図2参照)の動作について説明する。   Next, the operation of the processor 501 (see FIG. 2) in the information processing system according to the embodiment of the present invention will be described.

図12は、タスク情報を受け取ったプロセッサ501の動作の一例を示すフローチャートである。   FIG. 12 is a flowchart illustrating an example of the operation of the processor 501 that has received task information.

プロセッサ501は、実行制御部502からタスク情報100を受け取り(ステップS200)、入力ポートセット110の入力ポート制御情報112を参照して、指定された入力ポートを介して入力データを取得する(ステップS210)。   The processor 501 receives the task information 100 from the execution control unit 502 (step S200), refers to the input port control information 112 of the input port set 110, and acquires input data via the designated input port (step S210). ).

すなわちプロセッサ501は、入力ポート制御情報の設定値が0である場合は内部メモリ503内のバッファから入力データを取得し、入力ポート制御情報の設定値が1である場合には外部メモリ510において入力ポートアドレス111によってアドレス指定されるバッファ領域から入力データを取得する。   That is, the processor 501 acquires input data from the buffer in the internal memory 503 when the set value of the input port control information is 0, and inputs the input data in the external memory 510 when the set value of the input port control information is 1. Input data is obtained from the buffer area addressed by the port address 111.

プロセッサ501は、取得した入力データに対して、タスク情報100のプログラム識別子140が指定するタスクの処理を実行する(ステップS220)。   The processor 501 executes processing for the task specified by the program identifier 140 of the task information 100 with respect to the acquired input data (step S220).

そしてプロセッサ501は、出力ポートセット120の出力ポート制御情報122を参照して、指定されたバッファに出力ポートから処理結果データを出力する(ステップS230)。   Then, the processor 501 refers to the output port control information 122 of the output port set 120, and outputs the processing result data from the output port to the designated buffer (step S230).

すなわちプロセッサ501は、出力ポート制御情報の設定値が0である場合は内部メモリ503内のバッファへ処理結果データを出力し、出力ポート制御情報の設定値が1である場合は外部メモリ510において出力ポートアドレス121によってアドレス指定されるバッファ領域へ処理結果データを出力する。   That is, the processor 501 outputs the processing result data to the buffer in the internal memory 503 when the set value of the output port control information is 0, and outputs it in the external memory 510 when the set value of the output port control information is 1. The processing result data is output to the buffer area addressed by the port address 121.

図12では、一例として、入力ポートからのデータ入力(ステップS210)、タスクの実行(ステップS220)、出力ポートへのデータ出力(ステップS230)の各処理が別個に行われる場合が図示されている。しかしながら、これらの各処理が混在しても良い。   In FIG. 12, as an example, a case where data input from the input port (step S210), task execution (step S220), and data output to the output port (step S230) are performed separately is illustrated. . However, these processes may be mixed.

以上のように、本実施形態に係る情報処理システムによれば、同一プログラムで連続して実行される複数タスクのタスク情報を同一ストリームに属するタスクグループとしてまとめ、依存のあるタスクをプロセッサにより連続実行できるようにし、さらに連続実行される依存のあるタスクの入力ポート制御情報、出力ポート制御情報をタスク間の依存に従って設定し、依存のあるデータ転送はオーバーヘッドの少ない内部メモリ内の内部バッファを用いて行うことを指示し、プロセッサはタスク情報に従って入力ポートからの入力データの入力、出力ポートからの出力データの出力を行う。   As described above, according to the information processing system according to the present embodiment, task information of a plurality of tasks that are continuously executed by the same program is grouped as a task group that belongs to the same stream, and dependent tasks are continuously executed by a processor. In addition, input port control information and output port control information of dependent tasks that are continuously executed are set according to the dependency between tasks, and dependent data transfer is performed using an internal buffer in the internal memory with low overhead. In response to the task information, the processor inputs input data from the input port and outputs output data from the output port.

従って、依存関係にあり、同一プログラムによって連続して実行される複数タスクを実行する際には、外部メモリアクセスの一部を内部メモリアクセスとすることができる。このため、外部メモリアクセス、及び外部メモリアクセスに伴うオーバーヘッドを削減し、効率的な処理を実現できる。   Therefore, when executing a plurality of tasks that are dependent and are continuously executed by the same program, a part of the external memory access can be set as the internal memory access. Therefore, it is possible to reduce the external memory access and the overhead associated with the external memory access, and to realize efficient processing.

なお、本発明の実施形態に係る情報処理システムは、ハードウェアにより実現することもできるが、コンピュータを情報処理システムその装置として機能させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。   Note that the information processing system according to the embodiment of the present invention can be realized by hardware, but the computer reads a program for causing the computer to function as an apparatus of the information processing system from a computer-readable recording medium and executes the program. This can also be realized.

また、本発明の実施形態による情報処理方法は、ハードウェアにより実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。   In addition, the information processing method according to the embodiment of the present invention can be realized by hardware, but the computer can also read and execute a program for causing the computer to execute the method from a computer-readable recording medium. Can be realized.

更に、上記実施形態では、本実施形態特有のプログラムが、情報処理システムに予め組み込まれているものとして説明した。しかし、コンピュータを、情報処理システムの全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical Disk(Disc))BD(Blu-ray Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。更に、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波にプログラムを重畳させて、コンピュータにダウンロード等してプログラムを実行してもよい。   Furthermore, in the above-described embodiment, the program unique to this embodiment has been described as being pre-installed in the information processing system. However, a program for causing a computer to operate as all or part of an information processing system or to execute the above-described processing is a flexible disk, a CD-ROM (Compact Disc Read-Only Memory), a DVD (Digital Versatile Disc). ), Stored on a computer-readable recording medium such as an MO (Magneto Optical Disk (Disc)) BD (Blu-ray Disc) and distributed, installed on another computer, and operated as the above-mentioned means, or The above-described steps may be executed. Furthermore, the program may be stored in a disk device or the like included in a server device on the Internet, and the program may be executed by, for example, superimposing the program on a carrier wave and downloading it to a computer.

また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。   Moreover, although the above-described embodiment is a preferred embodiment of the present invention, the scope of the present invention is not limited only to the above-described embodiment, and various modifications are made without departing from the gist of the present invention. Implementation in the form is possible.

本願は、日本の特願2010−213704(2010年9月24日に出願)に基づいたものであり、又、特願2010−213704に基づくパリ条約の優先権を主張するものである。特願2010−213704の開示内容は、特願2010−213704を参照することにより本明細書に援用される。   This application is based on Japanese Patent Application No. 2010-213704 (filed on Sep. 24, 2010), and claims the priority of the Paris Convention based on Japanese Patent Application No. 2010-213704. The disclosure of Japanese Patent Application No. 2010-213704 is incorporated herein by reference to Japanese Patent Application No. 2010-213704.

本発明の代表的な実施の形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。   Although exemplary embodiments of the present invention have been described in detail, various changes, substitutions and alternatives may be made without departing from the spirit and scope of the invention as defined in the claims. It should be understood that this is done. Moreover, even if the claim is amended in the application procedure, the inventor intends that the equivalent scope of the claimed invention is maintained.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)
タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを具備するプロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備え、
前記タスク管理部が、
前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容、及び前記プロセッサによる処理結果のデータを格納する少なくとも1つの出力用バッファを指定し、
前記タスクに対応する処理を前記プロセッサに行わせ、
前記入力用バッファ及び前記出力用バッファを前記プロセッシング要素の外部に設けられた外部メモリに確保するか前記内部メモリに確保するかをタスク間の依存に応じて管理する、
ことを特徴とする情報処理装置。
(Appendix 1)
A processor that executes processing corresponding to a task, a processing element that includes an internal memory that the processor occupies and can access, and a task management unit that controls the operation of the processing element,
The task management unit
At least one input buffer for storing the data to be processed, at least one output for storing the contents of processing performed by the processor on the data to be processed, and data of processing results by the processor Specify the buffer for
Causing the processor to perform processing corresponding to the task;
Managing whether to secure the input buffer and the output buffer in an external memory provided outside the processing element or in the internal memory according to the dependency between tasks;
An information processing apparatus characterized by that.

(付記2)
前記タスク管理部は、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、
前記入力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得することを特徴とする付記1に記載の情報処理装置。
(Appendix 2)
The task management unit
Specify an input port for inputting data stored in the input buffer to the processor;
Input port identification information for identifying whether the input buffer to which the input port is connected is secured in the external memory or the internal memory;
An address of the input buffer;
Task information including: to the processor,
The information processing apparatus according to appendix 1, wherein the processor acquires data to be processed from the input buffer according to the task information.

(付記3)
前記タスク管理部は、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが接続される前記出力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための出力ポート識別情報と、
前記出力ポートが接続される前記出力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記1に記載の情報処理装置。
(Appendix 3)
The task management unit
Specify an output port for storing the processing result data by the processor in the output buffer;
Output port identification information for identifying in which of the external memory and the internal memory the output buffer to which the output port is connected;
An address of the output buffer to which the output port is connected;
Task information including: to the processor,
The information processing apparatus according to claim 1, wherein the processor transfers the processing result data to the output buffer according to the task information.

(付記4)
前記タスク管理部は、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、
前記入力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得し、
また前記タスク管理部は、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが前記外部メモリと前記内部メモリのいずれに接続されるかを識別するための出力ポート識別情報と、
前記出力ポートが接続される前記出力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記1に記載の情報処理装置。
(Appendix 4)
The task management unit
Specify an input port for inputting data stored in the input buffer to the processor;
Input port identification information for identifying whether the input buffer to which the input port is connected is secured in the external memory or the internal memory;
An address of the input buffer;
Task information including: to the processor,
The processor acquires data to be processed from the input buffer according to the task information,
In addition, the task management unit
Specify an output port for storing the processing result data by the processor in the output buffer;
Output port identification information for identifying whether the output port is connected to the external memory or the internal memory;
An address of the output buffer to which the output port is connected;
Task information including: to the processor,
The information processing apparatus according to claim 1, wherein the processor transfers the processing result data to the output buffer according to the task information.

(付記5)
前記タスク管理部は、
前記処理の対処となるデータが前記内部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記内部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記内部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
前記処理の対処となるデータが前記外部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記外部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記外部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
また前記タスク管理部は、
前記処理結果のデータを前記内部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記内部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記内部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定し、
前記処理結果のデータを前記外部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記外部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記外部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定することを特徴とする付記4に記載の情報処理装置。
(Appendix 5)
The task management unit
If the data to be handled by the process is stored in the input buffer secured in the internal memory, the input port identification information is set so that the input port is connected to the internal memory, and Specify the address in the internal memory of the area where the data to be processed is stored as the address of the input buffer,
When the data to be handled by the processing is stored in the input buffer secured in the external memory, the input port identification information is set so that the input port is connected to the external memory, and Specify the address in the external memory of the area where the data to be processed is stored as the address of the input buffer,
In addition, the task management unit
When storing the processing result data in the output buffer secured in the internal memory, the output port identification information is set so that the output port is connected to the internal memory, and the processing result data Specify the address in the internal memory of the area to store the output buffer as an address,
When storing the processing result data in the output buffer secured in the external memory, the output port identification information is set so that the output port is connected to the external memory, and the processing result data The information processing apparatus according to appendix 4, wherein an address in the external memory of an area for storing is specified as an address of the output buffer.

(付記6)
複数のプロセッシング要素を具備するハードウェア部を更に備えることを特徴とする付記1乃至5の何れか1に記載の情報処理装置。
(Appendix 6)
6. The information processing apparatus according to any one of appendices 1 to 5, further comprising a hardware unit including a plurality of processing elements.

(付記7)
前記タスク管理部は、
同一のプログラム識別子を持つ複数のタスクのタスク情報を1つのタスクキューに、前記タスクが生成される順に格納し、
前記タスクキューを前記プロセッサに渡し、
前記プロセッサは、前記タスクキューに従って、前記複数のタスクを実行することを特徴とする付記1乃至6の何れか1に記載の情報処理装置。
(Appendix 7)
The task management unit
Store task information of a plurality of tasks having the same program identifier in one task queue in the order in which the tasks are generated,
Passing the task queue to the processor;
The information processing apparatus according to any one of appendices 1 to 6, wherein the processor executes the plurality of tasks according to the task queue.

(付記8)
前記タスク情報は、タスク間の依存関係を示すストリーム識別子情報を含み、
前記タスク管理部は、
同じストリーム識別子を持つ複数のタスクが連続して実行され、同一のストリーム識別子を持つ複数のタスク間での実行順序が変わらないように、前記タスクキューに格納されている前記複数のタスクのタスク情報を、前記ストリーム識別子を参照して並べ替えることを特徴とする付記7に記載の情報処理装置。
(Appendix 8)
The task information includes stream identifier information indicating a dependency relationship between tasks,
The task management unit
Task information of the plurality of tasks stored in the task queue so that a plurality of tasks having the same stream identifier are continuously executed and the execution order between the plurality of tasks having the same stream identifier does not change. The information processing apparatus according to appendix 7, wherein the information is rearranged with reference to the stream identifier.

(付記9)
前記タスク管理部は、
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる入力ポートが、前記内部メモリに確保された前記入力用バッファに接続されるように前記タスク情報を設定することを特徴とする付記8に記載の情報処理装置。
(Appendix 9)
The task management unit
In a task group consisting of tasks with the same stream identifier, for tasks that have a dependency relationship with other tasks,
9. The information processing apparatus according to appendix 8, wherein the task information is set so that an input port related to the dependency relationship is connected to the input buffer secured in the internal memory.

(付記10)
前記タスク管理部は、
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる出力ポートが、前記内部メモリに確保された前記出力用バッファに接続されるように前記タスク情報を設定する付記9に記載の情報処理装置。
(Appendix 10)
The task management unit
In a task group consisting of tasks with the same stream identifier, for tasks that have a dependency relationship with other tasks,
The information processing apparatus according to appendix 9, wherein the task information is set so that an output port related to the dependency relationship is connected to the output buffer secured in the internal memory.

(付記11)
タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを備えるプロセッシング要素を具備する情報処理装置において用いられる情報処理方法であって、
前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容、及び前記プロセッサによる処理結果のデータを格納する少なくとも1つの出力用バッファを指定し、
前記タスクに対応する処理を前記プロセッサに行わせ、
前記入力用バッファ及び前記出力用バッファを前記プロセッシング要素の外部に設けられた外部メモリに確保するか前記内部メモリに確保するかをタスク間の依存に応じて管理することを特徴とする情報処理方法。
(Appendix 11)
An information processing method used in an information processing apparatus including a processor that executes processing corresponding to a task, and a processing element that includes an internal memory that is occupied and accessible by the processor,
At least one input buffer for storing the data to be processed, at least one output for storing the contents of processing performed by the processor on the data to be processed, and data of processing results by the processor Specify the buffer for
Causing the processor to perform processing corresponding to the task;
An information processing method for managing whether to secure the input buffer and the output buffer in an external memory provided outside the processing element or in the internal memory according to dependency between tasks .

(付記12)
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、前記入力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得することを特徴とする付記11に記載の情報処理方法。
(Appendix 12)
Specify an input port for inputting data stored in the input buffer to the processor;
Task information including input port identification information for identifying whether the input buffer to which the input port is connected is reserved in the external memory or the internal memory, and an address of the input buffer To the processor,
The information processing method according to appendix 11, wherein the processor acquires data to be processed from the input buffer according to the task information.

(付記13)
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが接続される前記出力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記11に記載の情報処理方法。
(Appendix 13)
Specify an output port for storing the processing result data by the processor in the output buffer;
Output port identification information for identifying whether the output buffer to which the output port is connected is secured in the external memory or the internal memory, and the output buffer to which the output port is connected Task information including an address to the processor,
12. The information processing method according to claim 11, wherein the processor transfers the processing result data to the output buffer in accordance with the task information.

(付記14)
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、
前記入力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得し、
また、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが前記外部メモリと前記内部メモリのいずれに接続されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記11に記載の情報処理方法。
(Appendix 14)
Specify an input port for inputting data stored in the input buffer to the processor;
Input port identification information for identifying whether the input buffer to which the input port is connected is secured in the external memory or the internal memory;
An address of the input buffer;
Task information including: to the processor,
The processor acquires data to be processed from the input buffer according to the task information,
Also,
Specify an output port for storing the processing result data by the processor in the output buffer;
Task information including output port identification information for identifying whether the output port is connected to the external memory or the internal memory, and an address of the output buffer to which the output port is connected To the processor,
12. The information processing method according to claim 11, wherein the processor transfers the processing result data to the output buffer in accordance with the task information.

(付記15)
前記処理の対処となるデータが前記内部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記内部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記内部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
前記処理の対処となるデータが前記外部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記外部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記外部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
また、
前記処理結果のデータを前記内部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記内部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記内部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定し、
前記処理結果のデータを前記外部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記外部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記外部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定することを特徴とする付記14に記載の情報処理方法。
(Appendix 15)
If the data to be handled by the process is stored in the input buffer secured in the internal memory, the input port identification information is set so that the input port is connected to the internal memory, and Specify the address in the internal memory of the area where the data to be processed is stored as the address of the input buffer,
When the data to be handled by the processing is stored in the input buffer secured in the external memory, the input port identification information is set so that the input port is connected to the external memory, and Specify the address in the external memory of the area where the data to be processed is stored as the address of the input buffer,
Also,
When storing the processing result data in the output buffer secured in the internal memory, the output port identification information is set so that the output port is connected to the internal memory, and the processing result data Specify the address in the internal memory of the area to store the output buffer as an address,
When storing the processing result data in the output buffer secured in the external memory, the output port identification information is set so that the output port is connected to the external memory, and the processing result data 15. The information processing method according to appendix 14, wherein an address in the external memory of an area for storing is specified as an address of the output buffer.

(付記16)
前記情報処理装置は、複数のプロセッシング要素を具備するハードウェア部を更に具備することを特徴とする付記11乃至15の何れか1に記載の情報処理方法。
(Appendix 16)
16. The information processing method according to any one of appendices 11 to 15, wherein the information processing apparatus further includes a hardware unit including a plurality of processing elements.

(付記17)
同一のプログラム識別子を持つ複数のタスクのタスク情報を1つのタスクキューに、前記タスクが生成される順に格納し、
前記タスクキューを前記プロセッサに渡し、
前記プロセッサは、前記タスクキューに従って、前記複数のタスクを実行することを特徴とする付記11乃至16の何れか1に記載の情報処理方法。
(Appendix 17)
Store task information of a plurality of tasks having the same program identifier in one task queue in the order in which the tasks are generated,
Passing the task queue to the processor;
The information processing method according to any one of appendices 11 to 16, wherein the processor executes the plurality of tasks in accordance with the task queue.

(付記18)
前記タスク情報は、タスク間の依存関係を示すストリーム識別子情報を含み、
同じストリーム識別子を持つ複数のタスクが連続して実行され、同一のストリーム識別子を持つ複数のタスク間での実行順序が変わらないように、前記タスクキューに格納されている前記複数のタスクのタスク情報を、前記ストリーム識別子を参照して並べ替えることを特徴とする付記17に記載の情報処理方法。
(Appendix 18)
The task information includes stream identifier information indicating a dependency relationship between tasks,
Task information of the plurality of tasks stored in the task queue so that a plurality of tasks having the same stream identifier are continuously executed and the execution order between the plurality of tasks having the same stream identifier does not change. 18. The information processing method according to appendix 17, wherein the information is rearranged with reference to the stream identifier.

(付記19)
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、前記依存関係に関わる入力ポートが、前記内部メモリに確保された前記入力用バッファに接続されるように前記タスク情報が設定されることを特徴とする付記18に記載の情報処理方法。
(Appendix 19)
In a task group consisting of tasks having the same stream identifier, for a task having a dependency relationship with another task, an input port related to the dependency relationship is connected to the input buffer secured in the internal memory. The information processing method according to appendix 18, wherein the task information is set as described above.

(付記20)
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、前記依存関係に関わる出力ポートが、前記内部メモリに確保された前記出力用バッファに接続されるように前記タスク情報が設定されることを特徴とする付記19に記載の情報処理方法。
(Appendix 20)
In a task group consisting of tasks having the same stream identifier, for a task having a dependency relationship with another task, an output port related to the dependency relationship is connected to the output buffer secured in the internal memory. The information processing method according to appendix 19, wherein the task information is set as described above.

(付記21)
タスクに対応する処理を実行するプロセッサと、前記プロセッサが占有してアクセス可能な内部メモリを具備するプロセッシング要素と、前記プロセッサの動作を制御するタスク管理部とを備える情報処理装置に組み込まれる情報処理プログラムであって、
前記タスク管理部が、
前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容、及び前記プロセッサによる処理結果のデータを格納する少なくとも1つの出力用バッファを指定し、
前記タスクに対応する処理を前記プロセッサに行わせ、
前記入力用バッファ及び前記出力用バッファを前記プロセッシング要素の外部に設けられた外部メモリに確保するか前記内部メモリに確保するかをタスク間の依存に応じて管理する、
情報処理装置としてコンピュータを機能させることを特徴とする情報処理プログラム。
(Appendix 21)
Information processing incorporated in an information processing apparatus including a processor that executes processing corresponding to a task, a processing element that includes an internal memory that the processor occupies and can access, and a task management unit that controls the operation of the processor A program,
The task management unit
At least one input buffer for storing the data to be processed, at least one output for storing the contents of processing performed by the processor on the data to be processed, and data of processing results by the processor Specify the buffer for
Causing the processor to perform processing corresponding to the task;
Managing whether to secure the input buffer and the output buffer in an external memory provided outside the processing element or in the internal memory according to the dependency between tasks;
An information processing program for causing a computer to function as an information processing apparatus.

(付記22)
前記タスク管理部が、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、前記入力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得することを特徴とする付記21に記載の情報処理プログラム。
(Appendix 22)
The task management unit
Specify an input port for inputting data stored in the input buffer to the processor;
Task information including input port identification information for identifying whether the input buffer to which the input port is connected is reserved in the external memory or the internal memory, and an address of the input buffer To the processor,
The information processing program according to appendix 21, wherein the processor acquires data to be processed from the input buffer according to the task information.

(付記23)
前記タスク管理部が、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定するし、
前記出力ポートが接続される前記出力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記21に記載の情報処理プログラム。
(Appendix 23)
The task management unit
Specify an output port for storing data of a processing result by the processor in the output buffer;
Output port identification information for identifying whether the output buffer to which the output port is connected is secured in the external memory or the internal memory, and the output buffer to which the output port is connected Task information including an address to the processor,
The information processing program according to appendix 21, wherein the processor transfers data of the processing result to the output buffer according to the task information.

(付記24)
前記タスク管理部が、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、前記入力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得し、
また前記タスク管理部が、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが前記外部メモリと前記内部メモリのいずれに接続されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記21に記載の情報処理プログラム。
(Appendix 24)
The task management unit
Specify an input port for inputting data stored in the input buffer to the processor;
Task information including input port identification information for identifying whether the input buffer to which the input port is connected is reserved in the external memory or the internal memory, and an address of the input buffer To the processor,
The processor acquires data to be processed from the input buffer according to the task information,
In addition, the task management unit
Specify an output port for storing the processing result data by the processor in the output buffer;
Task information including output port identification information for identifying whether the output port is connected to the external memory or the internal memory, and an address of the output buffer to which the output port is connected To the processor,
The information processing program according to appendix 21, wherein the processor transfers data of the processing result to the output buffer according to the task information.

(付記25)
前記タスク管理部が、
前記処理の対処となるデータが前記内部メモリに確保された前記入力用バッファに格納されている場合は、
前記入力ポートが前記内部メモリに接続されるように前記入力ポート識別情報を設定し、
前記処理の対象となるデータが格納された領域の前記内部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
前記処理の対処となるデータが前記外部メモリに確保された前記入力用バッファに格納されている場合は、
前記入力ポートが前記外部メモリに接続されるように前記入力ポート識別情報を設定し、
前記処理の対象となるデータが格納された領域の前記外部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
また前記タスク管理部が、
前記処理結果のデータを前記内部メモリに確保された前記出力用バッファに格納する場合は、
前記出力ポートが前記内部メモリに接続されるように前記出力ポート識別情報を設定し、
前記処理結果のデータを格納する領域の前記内部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定し、
前記処理結果のデータを前記外部メモリに確保された前記出力用バッファに格納する場合は、
前記出力ポートが前記外部メモリに接続されるように前記出力ポート識別情報を設定し、
前記処理結果のデータを格納する領域の前記外部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定することを特徴とする付記24に記載の情報処理プログラム。
(Appendix 25)
The task management unit
When the data to be dealt with by the processing is stored in the input buffer secured in the internal memory,
Setting the input port identification information so that the input port is connected to the internal memory;
Specify the address in the internal memory of the area where the data to be processed is stored as the address of the input buffer,
When the data to be handled by the process is stored in the input buffer secured in the external memory,
Setting the input port identification information such that the input port is connected to the external memory;
Specify the address in the external memory of the area where the data to be processed is stored as the address of the input buffer,
In addition, the task management unit
When storing the processing result data in the output buffer secured in the internal memory,
Setting the output port identification information such that the output port is connected to the internal memory;
Specify the address in the internal memory of the area for storing the processing result data as the output buffer address;
When storing the processing result data in the output buffer secured in the external memory,
Setting the output port identification information such that the output port is connected to the external memory;
25. The information processing program according to appendix 24, wherein an address in the external memory of an area for storing the processing result data is designated as an address of the output buffer.

(付記26)
前記情報処理装置は、複数のプロセッシング要素を具備するハードウェア部を更に具備することを特徴とする付記21乃至25の何れか1に記載の情報処理プログラム。
(Appendix 26)
26. The information processing program according to any one of appendices 21 to 25, wherein the information processing apparatus further includes a hardware unit including a plurality of processing elements.

(付記27)
前記タスク管理部が、
同一のプログラム識別子を持つ複数のタスクのタスク情報を1つのタスクキューに、前記タスクが生成される順に格納し、
前記タスクキューを前記プロセッサに渡し、
前記プロセッサは、前記タスクキューに従って、前記複数のタスクを実行することを特徴とする付記21乃至26の何れか1に記載の情報処理プログラム。
(Appendix 27)
The task management unit
Store task information of a plurality of tasks having the same program identifier in one task queue in the order in which the tasks are generated,
Passing the task queue to the processor;
The information processing program according to any one of appendices 21 to 26, wherein the processor executes the plurality of tasks in accordance with the task queue.

(付記28)
前記タスク情報は、タスク間の依存関係を示すストリーム識別子情報を含み、
前記タスク管理部が、
同じストリーム識別子を持つ複数のタスクが連続して実行され、同一のストリーム識別子を持つ複数のタスク間での実行順序が変わらないように、前記タスクキューに格納されている前記複数のタスクのタスク情報を、前記ストリーム識別子を参照して並べ替えることを特徴とする付記27に記載の情報処理プログラム。
(Appendix 28)
The task information includes stream identifier information indicating a dependency relationship between tasks,
The task management unit
Task information of the plurality of tasks stored in the task queue so that a plurality of tasks having the same stream identifier are continuously executed and the execution order between the plurality of tasks having the same stream identifier does not change. 28. The information processing program according to appendix 27, wherein the information is rearranged with reference to the stream identifier.

(付記29)
前記タスク管理部が、
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる入力ポートが、前記内部メモリに確保された前記入力用バッファに接続されるように前記タスク情報を設定することを特徴とする付記28に記載の情報処理プログラム。
(Appendix 29)
The task management unit
In a task group consisting of tasks with the same stream identifier, for tasks that have a dependency relationship with other tasks,
29. The information processing program according to appendix 28, wherein the task information is set so that an input port related to the dependency relationship is connected to the input buffer secured in the internal memory.

(付記30)
前記タスク管理部が、
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる出力ポートが、前記内部メモリに確保された前記出力用バッファに接続されるように前記タスク情報を設定することを特徴とする付記29に記載の情報処理プログラム。
(Appendix 30)
The task management unit
In a task group consisting of tasks with the same stream identifier, for tasks that have a dependency relationship with other tasks,
The information processing program according to appendix 29, wherein the task information is set so that an output port related to the dependency relationship is connected to the output buffer secured in the internal memory.

本発明は、音声ストリーム、画像ストリーム等の複数のメディアのエンコード、デコードを行うマルチメディア処理装置や、ネットワークのパケットデータ等の処理を行う、ネットワーク処理への適用が可能である。   The present invention can be applied to a multimedia processing apparatus that performs encoding and decoding of a plurality of media such as an audio stream and an image stream, and network processing that performs processing of network packet data and the like.

Claims (10)

プロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備える情報処理装置であって、
前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、
前記タスク管理部、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせる部分であり、
前記タスク管理部が、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なうことを特徴とする情報処理装置。
An information processing apparatus comprising a processing element and a task management unit that controls the operation of the processing element,
The processing element includes a processor that executes processing corresponding to a task , and an internal memory that the processor occupies and can access ,
The task management unit includes at least one region of the input buffer for storing the data to be the process by the processor, the details of a process performed on data that the processor is subject to the treatment, before and at least one region of the output buffer for storing the data of said processing of the processing result of the serial processor is a portion of the front Kisho physical Ru was performed to the processor on the specified respectively,
Based on the dependency relationship between the tasks , the task management unit is provided with an input buffer region related to the dependency relationship and an output buffer region related to the dependency relationship outside the processing element. An information processing apparatus that performs the designation so as to be secured not in an external memory but in the internal memory .
前記タスク管理部は、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、前記入力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得し、
また前記タスク管理部は、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが前記外部メモリと前記内部メモリのいずれに接続されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする請求項1に記載の情報処理装置。
The task management unit
Specify an input port for inputting data stored in the input buffer to the processor;
Task information including input port identification information for identifying whether the input buffer to which the input port is connected is reserved in the external memory or the internal memory, and an address of the input buffer To the processor,
The processor acquires data to be processed from the input buffer according to the task information,
In addition, the task management unit
Specify an output port for storing the processing result data by the processor in the output buffer;
Task information including output port identification information for identifying whether the output port is connected to the external memory or the internal memory, and an address of the output buffer to which the output port is connected To the processor,
The information processing apparatus according to claim 1, wherein the processor transfers data of the processing result to the output buffer according to the task information.
前記タスク管理部は、
前記処理の対となるデータが前記内部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記内部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記内部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
前記処理の対となるデータが前記外部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記外部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記外部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
また前記タスク管理部は、
前記処理結果のデータを前記内部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記内部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記内部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定し、
前記処理結果のデータを前記外部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記外部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記外部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定することを特徴とする請求項2に記載の情報処理装置。
The task management unit
If data to be subject to the processing is stored in the input buffer secured in the internal memory, and set the input port identification information as the input port is connected to said internal memory, Specify the address in the internal memory of the area where the data to be processed is stored as the address of the input buffer,
If data to be subject to the processing is stored in the input buffer that is reserved in the external memory, set the input port identification information as the input port is connected to said external memory, Specify the address in the external memory of the area where the data to be processed is stored as the address of the input buffer,
In addition, the task management unit
When storing the processing result data in the output buffer secured in the internal memory, the output port identification information is set so that the output port is connected to the internal memory, and the processing result data Specify the address in the internal memory of the area to store the output buffer as an address,
When storing the processing result data in the output buffer secured in the external memory, the output port identification information is set so that the output port is connected to the external memory, and the processing result data The information processing apparatus according to claim 2, wherein an address in the external memory of an area for storing data is designated as an address of the output buffer.
当該情報処理装置は、前記プロセッシング要素を複数備え、
前記タスク管理部は、前記複数のプロセッシング要素それぞれの動作を制御することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
The information processing apparatus, a plurality of the processing elements,
The information processing apparatus according to claim 1 , wherein the task management unit controls operations of the plurality of processing elements .
前記タスク管理部は、
処理内容の種類が同一である複数のタスクを、1つのタスクキューに、前記タスクが生成される順に格納し、
前記タスクキューを前記プロセッサに渡し、
前記プロセッサは、前記タスクキューに従って、前記複数のタスクを実行することを特徴とする請求項2又は請求項3に記載の情報処理装置。
The task management unit
A plurality of tasks having the same processing content type are stored in one task queue in the order in which the tasks are generated,
Passing the task queue to the processor;
The information processing apparatus according to claim 2 , wherein the processor executes the plurality of tasks according to the task queue.
記タスク管理部は、
前記タスクキューに格納されている複数のタスクを、
依存関係の有るタスクが連続して実行されるように、且つ、依存関係の有るタスク間での実行順序が変わらないように並べ替えることを特徴とする請求項5に記載の情報処理装置。
Before Symbol task management unit,
A plurality of tasks stored in the task queue are
In so that runs dependency of a task continuously, and information processing apparatus according to claim 5, characterized in that changing base parallel to execution order between the dependent task does not change.
前記タスク管理部は
のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる入力ポートが、前記内部メモリに確保された前記入力用バッファに接続されるように前記タスク情報を設定することを特徴とする請求項6に記載の情報処理装置。
The task management unit,
For the dependencies tasks between other tasks,
The information processing apparatus according to claim 6, wherein the task information is set so that an input port related to the dependency relationship is connected to the input buffer secured in the internal memory.
前記タスク管理部は
のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる出力ポートが、前記内部メモリに確保された前記出力用バッファに接続されるように前記タスク情報を設定することを特徴とする請求項7に記載の情報処理装置。
The task management unit,
For the dependencies tasks between other tasks,
The information processing apparatus according to claim 7, wherein the task information is set so that an output port related to the dependency relationship is connected to the output buffer secured in the internal memory.
プロセッシング要素える情報処理装置が行なう情報処理方法であって、
前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、
当該情報処理方法では、
前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせるにあたり、
前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なうことを特徴とする情報処理方法。
An information processing method of Bei obtain information processing apparatus processing element performs,
The processing element includes a processor that executes processing corresponding to a task, and an internal memory that the processor occupies and can access,
In the information processing method,
And at least one region of the input buffer for storing the data to be the process by the processor, the details of a process performed on data that the processor is subject to the treatment, the treatment with pre-Symbol processor and at least one region of the output buffer for storing the data of the processing result, when each of the previous Kisho management after designating the Ru was performed to the processor,
Based on the dependencies between the tasks, the region of output buffer related to the region, and the dependency of the input buffer related to the dependency, rather than external memory provided outside of said processing elements, wherein An information processing method comprising performing the designation so as to be secured in an internal memory .
ロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備える情報処理装置に組み込まれる情報処理プログラムであって、
前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、
前記タスク管理部、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせる部分であり、
前記タスク管理部が、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なう、
情報処理装置としてコンピュータを機能させることを特徴とする情報処理プログラム。
And flop Rosesshingu element, an information processing program to be incorporated into the information processing apparatus and a task management unit for controlling the operation of said processing elements,
The processing element includes a processor that executes processing corresponding to a task, and an internal memory that the processor occupies and can access,
The task management unit includes at least one region of the input buffer for storing the data to be the process by the processor, the details of a process performed on data that the processor is subject to the treatment, before and at least one region of the output buffer for storing the data of said processing of the processing result of the serial processor is a portion of the front Kisho physical Ru was performed to the processor on the specified respectively,
Based on the dependency relationship between the tasks , the task management unit is provided with an input buffer region related to the dependency relationship and an output buffer region related to the dependency relationship outside the processing element. The designation is made so as to be secured in the internal memory, not in the external memory.
An information processing program for causing a computer to function as an information processing apparatus.
JP2012534967A 2010-09-24 2011-08-18 Information processing apparatus, method and program thereof Active JP5825261B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012534967A JP5825261B2 (en) 2010-09-24 2011-08-18 Information processing apparatus, method and program thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010213704 2010-09-24
JP2010213704 2010-09-24
PCT/JP2011/068667 WO2012039216A1 (en) 2010-09-24 2011-08-18 Information processing device, method therefor and program therefor
JP2012534967A JP5825261B2 (en) 2010-09-24 2011-08-18 Information processing apparatus, method and program thereof

Publications (2)

Publication Number Publication Date
JPWO2012039216A1 JPWO2012039216A1 (en) 2014-02-03
JP5825261B2 true JP5825261B2 (en) 2015-12-02

Family

ID=45873710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012534967A Active JP5825261B2 (en) 2010-09-24 2011-08-18 Information processing apparatus, method and program thereof

Country Status (2)

Country Link
JP (1) JP5825261B2 (en)
WO (1) WO2012039216A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180026327A (en) * 2016-09-02 2018-03-12 삼성전자주식회사 Automatic stream detection and assignment algorithm

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104781789B (en) * 2012-12-20 2018-06-05 三菱电机株式会社 Car-mounted device
AT514444A2 (en) * 2013-06-24 2015-01-15 Fts Computertechnik Gmbh Method and device for timely data transfer to the cyclic tasks in a distributed real-time system
WO2015194133A1 (en) 2014-06-19 2015-12-23 日本電気株式会社 Arithmetic device, arithmetic device control method, and storage medium in which arithmetic device control program is recorded
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
JP7145094B2 (en) * 2019-02-05 2022-09-30 Kddi株式会社 Control device, computer program and information processing method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328134A (en) * 1998-05-14 1999-11-30 Hitachi Ltd Method for transmitting and receiving data between computers
JP2002207710A (en) * 2001-01-11 2002-07-26 Mitsubishi Electric Corp Processing unit for multi-processor signal
JP2006099579A (en) * 2004-09-30 2006-04-13 Toshiba Corp Information processor and information processing method
WO2007029421A1 (en) * 2005-09-05 2007-03-15 Nec Corporation Information processing device
JP2007179358A (en) * 2005-12-28 2007-07-12 Nec Corp Information processor and method of using reconfiguration device
WO2009131167A1 (en) * 2008-04-23 2009-10-29 日本電気株式会社 Multiprocessor control apparatus, method therefor, and program therefor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328134A (en) * 1998-05-14 1999-11-30 Hitachi Ltd Method for transmitting and receiving data between computers
JP2002207710A (en) * 2001-01-11 2002-07-26 Mitsubishi Electric Corp Processing unit for multi-processor signal
JP2006099579A (en) * 2004-09-30 2006-04-13 Toshiba Corp Information processor and information processing method
WO2007029421A1 (en) * 2005-09-05 2007-03-15 Nec Corporation Information processing device
JP2007179358A (en) * 2005-12-28 2007-07-12 Nec Corp Information processor and method of using reconfiguration device
WO2009131167A1 (en) * 2008-04-23 2009-10-29 日本電気株式会社 Multiprocessor control apparatus, method therefor, and program therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180026327A (en) * 2016-09-02 2018-03-12 삼성전자주식회사 Automatic stream detection and assignment algorithm

Also Published As

Publication number Publication date
JPWO2012039216A1 (en) 2014-02-03
WO2012039216A1 (en) 2012-03-29

Similar Documents

Publication Publication Date Title
JP5825261B2 (en) Information processing apparatus, method and program thereof
KR100649107B1 (en) Method and system for performing real-time operation
KR100628492B1 (en) Method and system for performing real-time operation
US7418705B2 (en) Method and system for performing real-time operation
JP5018480B2 (en) Information processing device
US7657890B2 (en) Scheduling system and method in which threads for performing a real-time operation are assigned to a plurality of processors
US7464379B2 (en) Method and system for performing real-time operation
WO2005116830A1 (en) Signal processing apparatus
US20080133899A1 (en) Context switching method, medium, and system for reconfigurable processors
JP5175517B2 (en) Processor
JP4102425B2 (en) Processor
JP2007047968A (en) Multiprocessor system
WO2019178178A1 (en) Thread scheduling for multithreaded data processing environments
JP2010186347A (en) System, method and program for scheduling job
JP5236386B2 (en) Image decoding apparatus and image decoding method
JP2007122337A (en) Arithmetic unit
JP7331482B2 (en) Arithmetic processing device and information processing device
JP2010039860A (en) Component program controller, method for controlling component program, and program
JP4410297B2 (en) Reconfigurable circuit
JP3931883B2 (en) Job scheduling method, computer system, and job scheduling program
JPH11232111A (en) Information processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150730

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150928

R150 Certificate of patent or registration of utility model

Ref document number: 5825261

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150