JP5825261B2 - 情報処理装置、その方法及びそのプログラム - Google Patents

情報処理装置、その方法及びそのプログラム 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
English (en)
Other versions
JPWO2012039216A1 (ja
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/ja
Publication of JPWO2012039216A1 publication Critical patent/JPWO2012039216A1/ja
Application granted granted Critical
Publication of JP5825261B2 publication Critical patent/JP5825261B2/ja
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

本発明は、情報処理装置、その方法及びそのプログラムに関し、特に複数のタスクから構成されるジョブにおいてタスク間でデータを共有しながら処理を行うタスクの実行制御に関連した情報処理装置、その方法及びそのプログラムに関する。
例えばパケットストリームや音声・画像ストリーム等のストリームデータは、少なくとも1フレーム以上のフレームデータ(1単位の入力データ)から構成される。ストリームデータに対して行われるストリーム処理では、各フレームデータに対して一連の処理(以下ではジョブと称する)が施され、出力データが生成される。フレームデータに対して行われるジョブは、少なくとも1以上の部分処理(以下ではタスクと称する)に分割することができる。
分割されたタスクは、異なるプロセッサによって、又は同一のプロセッサであっても異なるプログラムを実行して、あるいは再構成ハードウェア(HW)であれば異なるコンフィギュレーションによって処理すること等が可能である(例えば特許文献1参照)。
国際公開第2007/029421号(図1−3)
しかしながら、依存関係にあるタスク間で、外部メモリ上に確保されたバッファを介してデータの受け渡しが行われると、バッファアクセスのオーバーヘッドが発生し、処理に遅延が生じることがある。
そこで、本発明は、バッファアクセスのオーバーヘッドを削減して、処理遅延の発生を防ぐ情報処理装置、その方法及びそのプログラムを提供することを目的とする。
本発明の第1の観点によれば、プロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備える情報処理装置であって、前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、前記タスク管理部、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせる部分であり、前記タスク管理部が、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なうことを特徴とする情報処理装置が提供される。
本発明の第2の観点によれば、プロセッシング要素える情報処理装置が行なう情報処理方法であって、前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、当該情報処理方法では、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせるにあたり、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なうことを特徴とする情報処理方法が提供される。
本発明の第3の観点によれば、ロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備える情報処理装置に組み込まれる情報処理プログラムであって、前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、前記タスク管理部、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせる部分であり、前記タスク管理部が、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なう、情報処理装置としてコンピュータを機能させることを特徴とする情報処理プログラムが提供される。
本発明によれば、入力用バッファ及び出力用バッファをプロセッシング要素の外部に設けられた外部メモリに確保するか、内部メモリに確保するかをタスク間の依存に応じて管理するため、バッファアクセスのオーバーヘッドを削減して、処理遅延の発生を防ぐことが可能となる。
本発明の一実施形態に係る情報処理システムにおいて実行されるジョブの詳細を示す図である。 本発明の一実施形態に係る情報処理システムの一般的な構成を示す図である。 本発明の一実施形態に係る情報処理システムにおいて参照されるタスク情報の詳細を示す図である。 本発明の一実施形態に係るタスク管理情報の一例を示す図である。 本発明の一実施形態に係るタスク管理情報に含まれるタスクキューの詳細な構成の一例を示す図である。 本発明の一実施形態に係る互いに依存関係にある複数ジョブの一例を示す図である。 本発明の実施形態に係る複数のジョブにおいて同一種類のタスク間に成立する依存関係をさらに詳細に示す図である。 本発明の一実施形態に係る、プロセッサからバッファ領域へのアクセスの様子を示す図である。 本発明の一実施形態に係る、3つのタスクが実行される場合の、各タスクのタスク情報の設定の一例を示す図である。 本発明の一実施形態に係る、3つのタスクが実行される場合の、各タスクのタスク情報の設定の他の一例を示す図である。 本発明の一実施形態に係るタスク管理動作の一例を示すフローチャートである。 本発明の一実施形態に係るタスク情報を受け取ったプロセッサの動作の一例を示すフローチャートである。
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 タスク情報
以下では、本発明の実施形態について、図面を参照して説明する。
図1は、本発明の一実施形態に係る情報処理システムにおいて実行されるジョブの詳細を示す図である。
図1に示すように、1つのジョブ400は、少なくとも1つ以上のタスクに分割することが可能である。
タスク処理部Task1は、タスク300に対応する処理機能を実現する。タスク処理部Task1は、具体的にはプロセッサとそのプログラム又は、再構成可能ハードウェア(HW)とそのコンフィギュレーション等によって実現される。
タスク処理部Task1は、処理の対象となる入力データが入力する入力ポートIport1と、処理結果データが出力される出力ポートOport1を具備する。入力ポートIport1と出力ポートOport1は、それぞれ対応するバッファBuf1とBuf4に接続されている。
入力ポートIport1に接続されたバッファBuf1に必要なデータがバッファされ、出力ポートOport1に接続されたバッファBuf4への書き込みが可能となると、タスク処理部Task1は、他のタスクとは独立に処理を実行することが可能となる。
図1に示す例では、タスク処理部Task1の入力ポートIport1にバッファBuf1が、また出力ポートOport2にバッファBuf4接続されて、1つのタスク300が構成されている。しかしながら、タスク処理部は複数の入力ポート、複数の出力ポート、又はその双方を備えていてもよい。例えばタスク処理部Task4〜Task7のそれぞれは、2つの入力ポートIport1とIport2と1つの出力ポートOport1を具備している。これらの2つの入力ポートには、それぞれ異なるバッファが接続される。
図1に示すジョブ400は、7個のタスク処理部Task1〜Task7と10個のバッファBuf1〜Buf10を含む。これらのタスク処理部Task1〜Task7に対応して、ジョブ400は複数のタスクに分割され得る。
タスク処理部Task2〜Task7も、タスク処理部Task1と同様な構成を有し、対応するタスク処理の機能を実現する。なお、1つのジョブ400が備えるタスク処理部の数は、7に限定されるわけではない。
ジョブ400を構成する複数のタスクは互いに依存関係にあり、何れかのタスクの出力結果が、別のタスクの入力データとして利用されてもよい。各タスクについて、入力用のバッファ(当該タスクがアクセスする入力データが格納されているバッファ)と、当該タスクの処理結果が出力される出力用のバッファの情報は、タスク情報100(図3参照)に基づいて管理される。タスク情報100に基づいて、それぞれのタスクについて適切な入出力用のバッファが指定され、タスク間でのデータの受け渡しが行われる。
例えばタスク処理ProcAを実行するタスク処理部Task1によるタスクは、このタスク処理部Task1と、入力ポートIport1に接続されたバッファBuf1と、出力ポートOport1に接続されたバッファBuf4とから構成される。
更にバッファBuf4は、他のタスクを実行するためのタスク処理部Task4の入力ポートIport1にも接続され、この接続を介して、2つのタスクTask1とTask4とは互いに依存関係にあることになる。
ジョブ400は3つのジョブ入力ポート410と4つのジョブ出力ポート420を備えている。外部からの入力データはジョブ入力ポート410から入力され、対応するそれぞれのバッファに格納される。またジョブ400の処理結果は、出力側のバッファに格納され、ジョブ出力ポート420からジョブ400の外部に出力される。このジョブ400の処理結果のデータは、他のジョブによって処理され得る。
図2は、本発明の一実施形態に係る情報処理システムの一般的な構成を示す図である。
この情報処理システムは、1つの情報処理装置上で実現されてもよい。情報処理システムは、1又は複数のプロセッシング要素(PE)500、外部メモリ510、及びタスク管理部530を含む。これらの各部は、通信路520を介して互いに接続されている。
プロセッシング要素500は、実際にタスクを処理するハードウェア構成を含み、具体的には、プロセッサ501、実行制御部502、及び内部メモリ503を含む。プロセッサ501は、タスクの処理を実際に行い、実行制御部502は、プロセッサ501によるタスクの実行を制御する。また、内部メモリ503は、プロセッサ501が占有してアクセスすることのできるメモリである。
プロセッサ501及び実行制御部502は、タスクの実行に際して、タスク情報100(図3参照)を参照する。
外部メモリ510は、処理対象となるデータや処理内容を定義するプログラム等を格納する記憶装置である。
タスク管理部530は、アプリケーションを構成するジョブやタスクを管理する管理機能を実現する。タスク管理部530は、外部からのデータの到着に応じて予め指定された処理を当該データに施してジョブ管理を行う。またタスク管理部530は、ジョブ内のタスクの実行状況に応じて、次に実行すべきタスクを動的に選択し、タスクの実行と、タスクの実行に必要なプログラムロードのスケジュール管理を動的に行う。
図3は、本発明の一実施形態に係る情報処理システムにおいて参照されるタスク情報の詳細を示す図である。
図3に示すように、タスク情報100は一例として、入力ポートセット110、出力ポートセット120、タスク識別子(TID)130、プログラム識別子(PID)140、タスク管理情報150、及びストリーム識別子(SID)160等の項目を含む。
タスク識別子130はタスク情報100に対応するタスクを指定し、プログラム識別子140は当該タスクの処理内容を指定する。
タスクの実行管理に必要とされるその他の情報は、例えばタスク管理情報150として管理される。また、ストリーム識別子160は、依存関係を持つ可能性があるタスクを識別するための識別子であり、例えば同一のグループ(ストリーム)に属しているタスクについては、同一の識別子が割り当てられてもよい。
入力ポートセット110は、タスク処理の入力データが格納される、少なくとも1以上のバッファをアドレス指定するための情報を含む。入力ポートセット110は、少なくとも1つの入力ポートアドレス111と、入力ポートアドレスに応じた入力ポート制御情報(IF)112を含む。
入力ポートアドレス111は、入力データが格納されるバッファをアドレス指定する。入力ポート制御情報112は、当該バッファに入力する入力データが、外部メモリ510に確保されたバッファから入力されるか、あるいは内部メモリ503に確保されたバッファから入力されるかを判定するための情報である。
出力ポートセット120は、タスクの処理結果データが出力される、少なくとも1以上のバッファをアドレス指定するための情報を含む。出力ポートセット120は、少なくとも1つの出力ポートアドレス121と、出力ポートアドレスに応じた出力ポート制御情報(OF)122を含む。
出力ポートアドレス121は、出力データが格納されるバッファをアドレス指定する。出力ポート制御情報122は、出力データを外部メモリ510内のバッファに格納するか、内部メモリ503内のバッファに格納するかを判定するための情報である。
タスク処理を実行するプロセッサ501は、タスクに対応するタスク情報100を参照し、外部メモリ510内のバッファから入力データを取得するか、あるいは内部メモリ503内のバッファから入力データを取得するかを、入力ポートセット110のIF112の指定に応じて切り替える。同様にプロセッサ501は、出力ポートセット120のIF122の指定に応じて、出力データを外部メモリ510内のバッファに出力するか、内部メモリ503内のバッファへ出力するかを切り替える。
例えば画像ストリームのデコード処理を行う場合、フレームデータ毎にジョブを生成して処理が行われる。すなわち、連続する複数のフレームデータに対応して複数のジョブが生成され、それぞれのジョブは同様の処理を行うタスクに分割される。例えばそれぞれのフレームデータの処理は、ヘッダ解析、ハフマンデコード、逆量子化等の処理を含み、それぞれの処理がタスクとして実行される。
すなわち、複数のフレームデータに対してそれぞれジョブが生成され、それぞれのジョブは、ヘッダ解析タスク、ハフマンデコードタスク、逆量子化等のタスクに分割される。この場合、1つのジョブ内に3種類のタスクが存在するが、同一種類のタスクはタスクキューという1つのまとまりとして連続処理することができる。
図4は、本発明の一実施形態に係るタスク管理情報の一例を示す図である。このようなタスク管理情報を用いることで、同じ種類毎にタスク群を管理することが可能になる。
図4に示すタスク群管理情報600は、1又は複数のタスクキュー610(タスクキュー1〜タスクキューN)を含んでいる。タスクキュー610のそれぞれは、同種類のタスクの情報を格納している。
図5は、上述のタスク管理情報に含まれるタスクキューの詳細な構成の一例を示す図である。タスクキュー610は、タスクバッファ611、プログラム識別子(PID)612、及びタスクキュー管理情報613を含む。
タスクバッファ611には、タスクの生成順に従って複数のタスク情報614が格納される。タスク情報614のそれぞれは、例えば図3に示すタスク情報100に相当する。
プログラム識別子612はタスクの種類の識別に用いられ、図3に示すプログラム識別子140と同様の情報を含む。
タスクキュー管理情報613は、タスクキュー610が管理する複数のタスクの実行管理に必要な情報を含んでいる。タスクキュー管理情報613には、タスクバッファ611に格納されているタスク情報が指定する全てのタスクを実行するのに必要な所要時間(タスクキュー所要処理時間)や、当該全てのタスクの実行を完了すべき時刻(タスクキューデッドライン)が含まれていてもよい。
一般的に、1つのタスクキューにまとめられた連続する同一種類のタスク間にも、依存関係が成立することがある。
図6は、互いに依存関係にある複数ジョブの一例を示す図であり、図6に示す例では、4つのジョブJobj(j=1~4)が図示されている。
ジョブ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を含んでいる。
ジョブJobjでは、ジョブ入力ポートIport1,jとバッファBuf1,jが接続されており、またジョブ入力ポートIport2,jとバッファBuf2,jが接続されている。タスク処理部Task1, jは2つの入力ポートIport1とOport1を含んでいる。バッファBuf1,jからは入力ポートIport1に入力データが入力し、バッファBuf2,jからは入力ポートIport2に入力データが入力する。
タスク処理部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に格納される。
バッファBuf4,jはジョブ出力ポートOport1,jに、バッファBuf5, jはジョブ出力ポートOport2,jに接続されている。このため、タスク処理部Task1,jの処理結果データはバッファBuf5,jを介してジョブ出力ポートOport2,jに出力され、タスク処理部Task2,jの処理結果データはBuf4,jを介してジョブ出力ポートOport2,jに出力される。
図6に示す例では、ジョブJobjのジョブ出力ポートOport2,jが、次のジョブJobj+1のジョブ入力ポートIport1,j+1に接続されている。すなわち、前後のジョブの間で依存関係が成立している。
図6に示す最初のジョブJob1の出力データの1系統は、後続のジョブJob2の一方の入力ポートに入力する。すなわち、ジョブJob1の一方の出力ポートOport2,1は、後続のジョブJob2の一方の入力ポートIport1,2に接続されている。
このような経路を介して、ジョブJob1のタスク処理部Task1,1と、ジョブJob2の同種類のタスク処理部Task1,2との間には依存関係が成立する。
ジョブJob2のタスクTask1,2とジョブJob3のタスクTask1,3との間、及びジョブJob3のタスクTask1,3とジョブJob4のタスクTask1,4にも同様な依存関係が存在する。
図7は、図6に示した複数のジョブにおいて同一種類のタスク間に成立する依存関係をさらに詳細に示す図である。
タスク処理部Task1,i-1の処理結果データは、2つの出力ポートのうちOport2に対応付けられているバッファBuf5,i-1に格納される。続くタスク処理部Task1,iには入力ポートIPort1に対応付けられているバッファBuf1,iからデータが入力する。
このような場合に、同一のバッファ領域をバッファBuf5,i-1及びバッファBuf1.iとして重複して指定することで、バッファBuf5,i-1からバッファBuf1,iの間の不要なコピー処理を生じさせない。同様に、バッファBuf5,iとバッファBuf1,i+1についても、不要なコピー処理を削減できる。しかしながら、このようなバッファ領域が外部メモリ510上に確保されると、通信路520を介したメモリアクセスが必要とされ、処理遅延が生じる可能性がある。
図8は、本発明の一実施形態に係る、プロセッサからバッファ領域へのアクセスの様子を示す図である。説明の簡単化のため、図8では図2に示した情報処理システムから、説明に関わる部分を抜粋して示している。
図8に示す例では、外部メモリ510の特定の領域において、各バッファが確保されている。この図においては、各バッファがすべて異なる領域に確保されているように示されているが、処理に影響がなければ同じ領域に異なるバッファが確保されてもよい。
タスク情報100は、タスク間の依存関係に従って、個別に実行制御部502に転送される。あるいは、複数タスクのタスク情報100が格納されたタスクキュー610(図5参照)が、依存関係に従って一括して実行制御部502に転送されてもよい。
実行制御部502は、タスク情報100、又はタスクキュー610に格納されているタスク情報612に従って、プロセッサ501の実行を制御する。すなわちタスク処理部310の処理実行に必要なプログラムに従って、プロセッサ501が動作する。
再構成可能プロセッサであれば、プログラムを内部メモリ503に格納した後に当該プログラムを実行したり、プログラムに応じてハードウェアの構成を変えたりすることができる。実行制御部502は、このようなプログラムの内部メモリ503へのロードや、ハードウェア構成の再構成等の制御も行う。
プロセッサ501は、タスク情報100の入力ポートセット110、及び出力ポートセット120の情報に基づき、指定されたバッファにアクセスして必要な処理を行う。
内部メモリ503は、一時的なデータの格納に用いられ得るため、処理内容によっては、外部メモリ510におけるバッファの記憶内容の一部を内部メモリ503に転送し、内部メモリ503に対してRead/Writeしながら処理を進めることもできる。その後、最終的な処理結果を、内部メモリ503から外部メモリ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アクセスが生じる。
タスク同士が互いに独立に実行されると、外部メモリ510のバッファへのアクセスがタスクの実行毎に発生する。すなわち、タスク間でのデータの受け渡しは、外部メモリ510 に確保されたバッファを介して行うことになる。従って、連続するタスク間に依存関係があり、直前に実行されたタスクの処理結果を次のタスクが読み込む場合、先に外部メモリ内のバッファに格納されたデータを、改めて当該バッファから読み込まなくてはならない。
外部メモリ510は、通信路520を経由したアクセスによって、複数のプロセッシング要素で共有して使用される。このため一般的には、プロセッサ501が占有して使える内部メモリ503に比べて、外部メモリ510へのアクセスは遅延が大きい。また、他のプロセッシング要素とのアクセス競合のため、外部メモリ510へのアクセスに遅延を引き起こされる可能性もある。このため、タスクの処理に際して、外部メモリ510へのアクセスを削減して遅延を削減することが望まれる。
本実施形態に係る情報処理システムでは、タスクキュー610にまとめられた同種のタスクは、同一のプロセッサ501の同一のプログラムによって実行される。すなわち、外部メモリ510ではなくプロセッサ501が占有して利用可能な内部メモリ503にバッファ領域を確保しデータを受け渡す。
依存関係にある複数のタスクを同一のプロセッサ501によって連続して処理する場合に、当該プロセッサ501に接続された内部メモリ503にバッファ領域を確保することで、外部メモリ510へのアクセスを抑制することができる。従って、外部メモリ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アクセスされる。
そこで、このバッファBuf5,i-1に相当するバッファ領域を、内部メモリ503内に内部メモリBufとして確保する。これによって、タスクTask1,i-1の結果を当該バッファBufに格納し、タスクTask1,iの実行の際は、バッファBufに格納された結果を参照することができる。従って、外部メモリ510内のバッファBuf5,i-1へのWriteアクセス及びReadアクセスをそれぞれ削減することができる。
同様に、タスクTask1,i-1の処理結果を内部メモリ503内のバッファBufに格納し、タスクTask1,i+1がその結果を参照することで、バッファBuf5,i-1へのWriteアクセス及びReadアクセスをそれぞれ削減できる。
次に依存のあるタスクがあったとしても、当該タスクがTask1,i+1の直後には実行されなければ、タスクTask1,i+1の処理結果は外部メモリ510内のバッファBuf5,i+1に格納してもよい。
タスク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に伝達することができる。
一般に、同一タスクキュー610内において、依存関係のあるタスクのタスク情報614同士が常に隣接しているわけではない。例えば、2つの入力ストリームのデコードを並列におこなうような場合、それぞれのストリームのフレームデータの処理に必要なタスクに対応するタスク情報614が1つのタスクキュー610内に混在することがある。
同じストリームに属するフレームデータを処理するタスク間には依存関係があるが、異なるストリームに属するフレームデータを処理するタスク間には通常は依存関係がない。しかしながら、1つのタスクキュー610内のタスク情報614についてタスク処理を行う場合、プロセッサ501は、それぞれのタスク間に依存関係が成り立っているかどうかを判断することができないこともある。このような場合には、内部メモリ503上のバッファを用いてデータの受け渡しができたとしても、外部メモリ510内のバッファを用いたデータの受け渡しが行われてもよい。
タスクを実行するプロセッサ501は、タスク情報を参照して、指定されたタスクの処理を行う。プロセッサ501によって実行されるタスク処理は、プログラム識別子で指定される。具体的なタスク処理は、プロセッサ501のプログラムとして実現されたり、またはプロセッサ501が再構成可能ハードウェアである場合、再構成データにより再構成されたハードウェアとして実現されたりする。
プロセッサ501は、タスク情報100における入力ポート制御情報(IF1~IFJ)に応じて、入力ポートとの間のアクセス設定を変更する。すなわち、入力ポート制御情報が外部メモリ510を参照するよう設定されている場合(例えば制御情報の設定値=1であるとする)、対応する入力ポートアドレスを参照して外部メモリ510内のバッファから入力データを取得する。一方、タスク情報100において入力ポート制御情報が内部メモリ503を参照するよう設定されている場合(例えば制御情報の設定値=0であるとする)、内部メモリ503内に確保された内部バッファBufのデータを参照する。
内部メモリ503での内部バッファBufのアドレスは、対応する入力ポートアドレスによって指定されてもよい。また、同一のタスク識別子を持つタスクは同じプログラム、又は同じハードウェア構成に対応するため、タスク識別子が同じであるタスク間で内部メモリ503を介してデータの受け渡しをする場合は、プログラムやハードウェア構成に埋め込まれたアドレスを用いて内部メモリ503にアクセスできてもよい。
同様にプロセッサ501は、タスク情報100の出力ポート制御情報(OF1~OFJ)に応じて、出力ポートとの間のアクセス設定を変更する。すなわち、出力ポート制御情報の設定が外部メモリ510を参照するよう設定されている場合(例えば制御情報の設定値=1であるとする)、対応する出力ポートアドレスを参照して外部メモリ510内のバッファへ出力データが出力される。一方、タスク情報100において出力ポート制御情報が内部メモリ503へのアクセスを指定している場合(例えば制御情報の設定値=0であるとする)、内部メモリ503内に確保された内部バッファへ出力データが出力される。
内部メモリ503における内部バッファのアドレスは、対応する出力ポートアドレスによって指定されてもよい。また、同一のタスク識別子を持つタスクは同じプログラム、又は同じハードウェア構成に対応するため、タスク識別子が同じであるタスク間で内部メモリ503を介してデータの受け渡しをする場合は、プログラムやハードウェア構成に埋め込まれたアドレスを用いて内部メモリ503にアクセスできてもよい。
同一種類のタスクの処理を連続して行う場合、タスク間に依存関係が成立すれば、出力ポート制御情報の設定値を0として、先行タスクの依存を伝えることができる。これによって、出力ポートからの出力データは内部メモリ503のバッファに書き込まれる。その後、続くタスクの対応する入力ポート制御情報の設定値を0とすると、タスク間の依存関係が正しく伝達される。すなわち、続くタスクでは、内部メモリ503から入力データが読み出される。従って、依存関係にあるタスク間でのデータの転送を、内部メモリ503内のバッファを用いて行うことで、オーバーヘッドを削減することができる。
図9は、図7に示す3つのタスクが実行される場合の、各タスクのタスク情報100の設定の一例を示す図である。
タスクキュー600のタスクバッファ611内には、3つのタスクTask1,i-1、Task1,i、及びTask1,i+1それぞれのタスク情報100(すなわちタスク情報614)が格納されている。それぞれのタスク情報100は、入力ポート制御情報112、出力ポート制御情報122を含む。
3つのタスクは、プロセッサ501によってタスクTask1,i-1、Task1,i、Task1,i+1の順に実行される。これらのタスク間では依存関係が成立している。
しかしながら、図9に示す例では、すべてのタスクについて、入力ポート制御情報112と出力ポート制御情報122の制御値が1に設定されている。このため、データの転送は、入力ポートアドレス111と出力ポートアドレス121で指定される外部メモリ510内のバッファを介して行われる。
図10は、図9と同様に3つのタスクが実行される場合の、各タスク情報100の設定の他の一例を示す図である。
以下では、タスクバッファ611の先頭のタスクTask1,i-1は、プロセッサ501により直前に実行されたタスクとの依存はないものとする。
従って、タスクTask1,i-1への入力データは、外部メモリ510において入力ポートアドレスBuf1,i-1、Buf2,i-1で指定される領域から取得される。入力ポート制御情報IF1、IF2の値はそれぞれ1に設定されており、入力ポートに対応付けられたバッファが外部メモリ510内にあることが示されている。
先頭タスクTask1,i-1の2つの出力ポートのうち出力ポートOport1,i-1は、連続して実行される次のタスクTkas1,iとは依存関係がない。このため、出力ポートOport1,i-1から、外部メモリ510内において出力ポートアドレス1(Buf3,i-1)で指定される領域へ、出力データが送られる。出力ポートアドレス1に対応する出力ポート制御情報OF1の値は1に設定される。
一方、先頭タスクTask1,i-1の他方の出力ポートOport2,i-1からの出力データは、直後に実行されるタスクTask1,iの入力ポートIport1,iに入力される。この場合は、内部メモリ503内の内部バッファを介したデータの転送によってオーバーヘッドを削減することが考えられる。従って、対応する出力ポート制御情報OF2の値は0に設定され、内部メモリ503の内部バッファへの出力が指示される。
図10の例では、内部メモリ503内の内部バッファのアドレスは、タスクを実行するプログラムに埋め込まれているものとする。従って、出力ポートアドレス2に対応するアドレスを設定する必要は無い。
出力ポート制御情報の設定値が0である場合、対応する出力ポートアドレス121に設定されたアドレスが、内部メモリ503内のバッファ領域のアドレスとして利用されてもよい。
同様に、タスクTask1,iの入力ポートIport1,iの入力ポート制御情報IF1の値は0に設定されており、入力ポートIport1,iには、内部メモリ503内の内部バッファから入力データが入力される。また他方の入力ポート制御情報IF2の値は1に設定されており、外部メモリ510において入力ポートアドレス2(Buf2,i)で指定される領域から入力データが取得される。
このタスクTask1,iの出力ポートの設定はタスクTask1,i-1と同様であり、出力ポート制御情報OF1の値は1、OF2の値は0に設定されている。
次のタスクTask1,i+1の入力ポートの設定はタスクTask1,iの入力ポートの設定と同様である。すなわち、タスクTask1,i+1入力ポート制御情報IF1の値は0に、IF2の値は1に設定されている。
このタスクTask1,i+1は3つのタスクのうち最後のタスクであり、出力結果はすべて外部メモリ510に出力する必要がある。このため、タスクTask1,i+1についての出力ポート制御情報OF1、OF2の値は共に1に設定されている。
続いて、本発明の一実施形態に係る情報処理システムにおける、タスク管理部530(図2参照)の動作について説明する。
上述の通り、1つのタスクキュー610には同一のプログラム(プロセッサが再構成ハードウェアの場合は、同一のハードウェア構成) によって処理される複数のタスクのタスク情報がまとめられている。
例えば複数の異なるストリームデータを処理する場合は、異なるストリームの処理のためのジョブとそのジョブを構成するタスクが生成され、1つのタスクキュー610に格納されることがある。この場合、ストリームデータの到着順等に依存して、タスクキュー610内では、必ずしも同一ストリームのタスクが連続するわけではない。同一プログラムで実行されるタスクであっても同一のストリームに属さないタスクは依存関係がないので、タスク間の依存は内部メモリを介して転送することはできない。従って、本実施形態に係るタスク管理部530は、次に実行すべきタスクキュー610内のタスクの並べ替えを行い、同一のストリームに属する依存のあるタスクが連続して実行されるようにする。
図11は、本発明の一実施形態に係るタスク管理動作の一例を示すフローチャートである。図11は、プロセッシング要素500で実行するためのタスクキュー610の選択、及びその後に行われる動作を示す。
タスク管理部530は、各タスクキューのタスクキュー管理情報613に基づいて、次に実行すべきタスクキューを選択する(ステップS100)。
タスク管理部530は、選択されたタスクキュー内で、タスクの並べ替えを行う(ステップS110)。このとき、同一ストリームに属するタスクが連続するように並び替えが行われる。ただし、同一ストリームに属するタスク間での順序は変化しないようにする。
これは、タスクバッファ611の先頭から順に、同一ストリームに属するタスク情報614を選択することで実現可能である。タスク情報614(すなわちタスク情報100)が属するストリームは、ストリーム識別子160を参照して判定できる。連続するように並び替えられた同一ストリームに属するタスク群は、タスクグループと称される。
タスク管理部530は、選択されたタスクキューから1つのタスクグループを選択する(ステップS120)。選択の順序は任意に設定可能であってもよい。
タスク管理部530は、選択されたタスクグループの各タスクについて、入力ポート制御情報を設定し(ステップS130)、同様に出力ポート制御情報を設定する(ステップS140)。
すなわち、タスク管理部530は、タスク間の依存に関わる入力ポートに対して、タスクグループの先頭のタスクの入力ポート制御情報は1に設定し、先頭以外のタスクの入力ポート制御情報は0に設定する。
またタスク管理部530は、タスク間の依存に関わる出力ポートに対して、タスクグループの最後尾のタスクの出力ポート制御情報は1に設定し、最後尾以外のタスクの出力ポート制御情報は0に設定する。
タスク管理部530は、タスクグループ内の全てのタスクについて、入力ポート制御情報と出力ポート制御情報の設定が完了したか否かを判定する(ステップS150)。タスクグループ内全てのタスクについて設定が完了していなければ(ステップS150でNo)、処理はステップS130に戻り、入力ポート制御情報と出力ポート制御情報の設定が繰り返される。
タスクグループ内全てのタスクについて設定が完了したら(ステップS150でYes)、タスク管理部530は、全てのタスクグループについて設定が完了したか否かを判定する(ステップS160)。設定が完了していないタスクグループがあれば(ステップS160でNo)、タスク管理部503は、ステップS120に戻って次のタスクグループを選択し、ステップS130以降の処理を繰り返す。
全てのタスクグループについて設定が完了していれば(ステップS160でYes)、タスク間のデータ転送の設定が終了する。
次に、本発明の一実施形態に係る情報処理システムにおける、プロセッサ501(図2参照)の動作について説明する。
図12は、タスク情報を受け取ったプロセッサ501の動作の一例を示すフローチャートである。
プロセッサ501は、実行制御部502からタスク情報100を受け取り(ステップS200)、入力ポートセット110の入力ポート制御情報112を参照して、指定された入力ポートを介して入力データを取得する(ステップS210)。
すなわちプロセッサ501は、入力ポート制御情報の設定値が0である場合は内部メモリ503内のバッファから入力データを取得し、入力ポート制御情報の設定値が1である場合には外部メモリ510において入力ポートアドレス111によってアドレス指定されるバッファ領域から入力データを取得する。
プロセッサ501は、取得した入力データに対して、タスク情報100のプログラム識別子140が指定するタスクの処理を実行する(ステップS220)。
そしてプロセッサ501は、出力ポートセット120の出力ポート制御情報122を参照して、指定されたバッファに出力ポートから処理結果データを出力する(ステップS230)。
すなわちプロセッサ501は、出力ポート制御情報の設定値が0である場合は内部メモリ503内のバッファへ処理結果データを出力し、出力ポート制御情報の設定値が1である場合は外部メモリ510において出力ポートアドレス121によってアドレス指定されるバッファ領域へ処理結果データを出力する。
図12では、一例として、入力ポートからのデータ入力(ステップS210)、タスクの実行(ステップS220)、出力ポートへのデータ出力(ステップS230)の各処理が別個に行われる場合が図示されている。しかしながら、これらの各処理が混在しても良い。
以上のように、本実施形態に係る情報処理システムによれば、同一プログラムで連続して実行される複数タスクのタスク情報を同一ストリームに属するタスクグループとしてまとめ、依存のあるタスクをプロセッサにより連続実行できるようにし、さらに連続実行される依存のあるタスクの入力ポート制御情報、出力ポート制御情報をタスク間の依存に従って設定し、依存のあるデータ転送はオーバーヘッドの少ない内部メモリ内の内部バッファを用いて行うことを指示し、プロセッサはタスク情報に従って入力ポートからの入力データの入力、出力ポートからの出力データの出力を行う。
従って、依存関係にあり、同一プログラムによって連続して実行される複数タスクを実行する際には、外部メモリアクセスの一部を内部メモリアクセスとすることができる。このため、外部メモリアクセス、及び外部メモリアクセスに伴うオーバーヘッドを削減し、効率的な処理を実現できる。
なお、本発明の実施形態に係る情報処理システムは、ハードウェアにより実現することもできるが、コンピュータを情報処理システムその装置として機能させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
また、本発明の実施形態による情報処理方法は、ハードウェアにより実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
更に、上記実施形態では、本実施形態特有のプログラムが、情報処理システムに予め組み込まれているものとして説明した。しかし、コンピュータを、情報処理システムの全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical Disk(Disc))BD(Blu-ray Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。更に、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波にプログラムを重畳させて、コンピュータにダウンロード等してプログラムを実行してもよい。
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
本願は、日本の特願2010−213704(2010年9月24日に出願)に基づいたものであり、又、特願2010−213704に基づくパリ条約の優先権を主張するものである。特願2010−213704の開示内容は、特願2010−213704を参照することにより本明細書に援用される。
本発明の代表的な実施の形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを具備するプロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備え、
前記タスク管理部が、
前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容、及び前記プロセッサによる処理結果のデータを格納する少なくとも1つの出力用バッファを指定し、
前記タスクに対応する処理を前記プロセッサに行わせ、
前記入力用バッファ及び前記出力用バッファを前記プロセッシング要素の外部に設けられた外部メモリに確保するか前記内部メモリに確保するかをタスク間の依存に応じて管理する、
ことを特徴とする情報処理装置。
(付記2)
前記タスク管理部は、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、
前記入力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得することを特徴とする付記1に記載の情報処理装置。
(付記3)
前記タスク管理部は、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが接続される前記出力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための出力ポート識別情報と、
前記出力ポートが接続される前記出力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記1に記載の情報処理装置。
(付記4)
前記タスク管理部は、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、
前記入力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得し、
また前記タスク管理部は、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが前記外部メモリと前記内部メモリのいずれに接続されるかを識別するための出力ポート識別情報と、
前記出力ポートが接続される前記出力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記1に記載の情報処理装置。
(付記5)
前記タスク管理部は、
前記処理の対処となるデータが前記内部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記内部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記内部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
前記処理の対処となるデータが前記外部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記外部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記外部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
また前記タスク管理部は、
前記処理結果のデータを前記内部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記内部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記内部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定し、
前記処理結果のデータを前記外部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記外部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記外部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定することを特徴とする付記4に記載の情報処理装置。
(付記6)
複数のプロセッシング要素を具備するハードウェア部を更に備えることを特徴とする付記1乃至5の何れか1に記載の情報処理装置。
(付記7)
前記タスク管理部は、
同一のプログラム識別子を持つ複数のタスクのタスク情報を1つのタスクキューに、前記タスクが生成される順に格納し、
前記タスクキューを前記プロセッサに渡し、
前記プロセッサは、前記タスクキューに従って、前記複数のタスクを実行することを特徴とする付記1乃至6の何れか1に記載の情報処理装置。
(付記8)
前記タスク情報は、タスク間の依存関係を示すストリーム識別子情報を含み、
前記タスク管理部は、
同じストリーム識別子を持つ複数のタスクが連続して実行され、同一のストリーム識別子を持つ複数のタスク間での実行順序が変わらないように、前記タスクキューに格納されている前記複数のタスクのタスク情報を、前記ストリーム識別子を参照して並べ替えることを特徴とする付記7に記載の情報処理装置。
(付記9)
前記タスク管理部は、
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる入力ポートが、前記内部メモリに確保された前記入力用バッファに接続されるように前記タスク情報を設定することを特徴とする付記8に記載の情報処理装置。
(付記10)
前記タスク管理部は、
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる出力ポートが、前記内部メモリに確保された前記出力用バッファに接続されるように前記タスク情報を設定する付記9に記載の情報処理装置。
(付記11)
タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを備えるプロセッシング要素を具備する情報処理装置において用いられる情報処理方法であって、
前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容、及び前記プロセッサによる処理結果のデータを格納する少なくとも1つの出力用バッファを指定し、
前記タスクに対応する処理を前記プロセッサに行わせ、
前記入力用バッファ及び前記出力用バッファを前記プロセッシング要素の外部に設けられた外部メモリに確保するか前記内部メモリに確保するかをタスク間の依存に応じて管理することを特徴とする情報処理方法。
(付記12)
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、前記入力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得することを特徴とする付記11に記載の情報処理方法。
(付記13)
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが接続される前記出力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記11に記載の情報処理方法。
(付記14)
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、
前記入力用バッファのアドレスと、
を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得し、
また、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが前記外部メモリと前記内部メモリのいずれに接続されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記11に記載の情報処理方法。
(付記15)
前記処理の対処となるデータが前記内部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記内部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記内部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
前記処理の対処となるデータが前記外部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記外部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記外部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
また、
前記処理結果のデータを前記内部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記内部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記内部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定し、
前記処理結果のデータを前記外部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記外部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記外部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定することを特徴とする付記14に記載の情報処理方法。
(付記16)
前記情報処理装置は、複数のプロセッシング要素を具備するハードウェア部を更に具備することを特徴とする付記11乃至15の何れか1に記載の情報処理方法。
(付記17)
同一のプログラム識別子を持つ複数のタスクのタスク情報を1つのタスクキューに、前記タスクが生成される順に格納し、
前記タスクキューを前記プロセッサに渡し、
前記プロセッサは、前記タスクキューに従って、前記複数のタスクを実行することを特徴とする付記11乃至16の何れか1に記載の情報処理方法。
(付記18)
前記タスク情報は、タスク間の依存関係を示すストリーム識別子情報を含み、
同じストリーム識別子を持つ複数のタスクが連続して実行され、同一のストリーム識別子を持つ複数のタスク間での実行順序が変わらないように、前記タスクキューに格納されている前記複数のタスクのタスク情報を、前記ストリーム識別子を参照して並べ替えることを特徴とする付記17に記載の情報処理方法。
(付記19)
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、前記依存関係に関わる入力ポートが、前記内部メモリに確保された前記入力用バッファに接続されるように前記タスク情報が設定されることを特徴とする付記18に記載の情報処理方法。
(付記20)
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、前記依存関係に関わる出力ポートが、前記内部メモリに確保された前記出力用バッファに接続されるように前記タスク情報が設定されることを特徴とする付記19に記載の情報処理方法。
(付記21)
タスクに対応する処理を実行するプロセッサと、前記プロセッサが占有してアクセス可能な内部メモリを具備するプロセッシング要素と、前記プロセッサの動作を制御するタスク管理部とを備える情報処理装置に組み込まれる情報処理プログラムであって、
前記タスク管理部が、
前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容、及び前記プロセッサによる処理結果のデータを格納する少なくとも1つの出力用バッファを指定し、
前記タスクに対応する処理を前記プロセッサに行わせ、
前記入力用バッファ及び前記出力用バッファを前記プロセッシング要素の外部に設けられた外部メモリに確保するか前記内部メモリに確保するかをタスク間の依存に応じて管理する、
情報処理装置としてコンピュータを機能させることを特徴とする情報処理プログラム。
(付記22)
前記タスク管理部が、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、前記入力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得することを特徴とする付記21に記載の情報処理プログラム。
(付記23)
前記タスク管理部が、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定するし、
前記出力ポートが接続される前記出力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記21に記載の情報処理プログラム。
(付記24)
前記タスク管理部が、
前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、前記入力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得し、
また前記タスク管理部が、
前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
前記出力ポートが前記外部メモリと前記内部メモリのいずれに接続されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする付記21に記載の情報処理プログラム。
(付記25)
前記タスク管理部が、
前記処理の対処となるデータが前記内部メモリに確保された前記入力用バッファに格納されている場合は、
前記入力ポートが前記内部メモリに接続されるように前記入力ポート識別情報を設定し、
前記処理の対象となるデータが格納された領域の前記内部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
前記処理の対処となるデータが前記外部メモリに確保された前記入力用バッファに格納されている場合は、
前記入力ポートが前記外部メモリに接続されるように前記入力ポート識別情報を設定し、
前記処理の対象となるデータが格納された領域の前記外部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
また前記タスク管理部が、
前記処理結果のデータを前記内部メモリに確保された前記出力用バッファに格納する場合は、
前記出力ポートが前記内部メモリに接続されるように前記出力ポート識別情報を設定し、
前記処理結果のデータを格納する領域の前記内部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定し、
前記処理結果のデータを前記外部メモリに確保された前記出力用バッファに格納する場合は、
前記出力ポートが前記外部メモリに接続されるように前記出力ポート識別情報を設定し、
前記処理結果のデータを格納する領域の前記外部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定することを特徴とする付記24に記載の情報処理プログラム。
(付記26)
前記情報処理装置は、複数のプロセッシング要素を具備するハードウェア部を更に具備することを特徴とする付記21乃至25の何れか1に記載の情報処理プログラム。
(付記27)
前記タスク管理部が、
同一のプログラム識別子を持つ複数のタスクのタスク情報を1つのタスクキューに、前記タスクが生成される順に格納し、
前記タスクキューを前記プロセッサに渡し、
前記プロセッサは、前記タスクキューに従って、前記複数のタスクを実行することを特徴とする付記21乃至26の何れか1に記載の情報処理プログラム。
(付記28)
前記タスク情報は、タスク間の依存関係を示すストリーム識別子情報を含み、
前記タスク管理部が、
同じストリーム識別子を持つ複数のタスクが連続して実行され、同一のストリーム識別子を持つ複数のタスク間での実行順序が変わらないように、前記タスクキューに格納されている前記複数のタスクのタスク情報を、前記ストリーム識別子を参照して並べ替えることを特徴とする付記27に記載の情報処理プログラム。
(付記29)
前記タスク管理部が、
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる入力ポートが、前記内部メモリに確保された前記入力用バッファに接続されるように前記タスク情報を設定することを特徴とする付記28に記載の情報処理プログラム。
(付記30)
前記タスク管理部が、
同じストリーム識別子を持つタスクからなるタスクグループにおいて、他のタスクとの間に依存関係があるタスクについて、
前記依存関係に関わる出力ポートが、前記内部メモリに確保された前記出力用バッファに接続されるように前記タスク情報を設定することを特徴とする付記29に記載の情報処理プログラム。
本発明は、音声ストリーム、画像ストリーム等の複数のメディアのエンコード、デコードを行うマルチメディア処理装置や、ネットワークのパケットデータ等の処理を行う、ネットワーク処理への適用が可能である。

Claims (10)

  1. プロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備える情報処理装置であって、
    前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、
    前記タスク管理部、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせる部分であり、
    前記タスク管理部が、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なうことを特徴とする情報処理装置。
  2. 前記タスク管理部は、
    前記入力用バッファに格納されたデータを前記プロセッサに入力するための入力ポートを指定し、
    前記入力ポートが接続される前記入力用バッファが、前記外部メモリと前記内部メモリのいずれに確保されるかを識別するための入力ポート識別情報と、前記入力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
    前記プロセッサは、前記タスク情報に応じて前記入力用バッファから前記処理の対象となるデータを取得し、
    また前記タスク管理部は、
    前記プロセッサによる処理結果のデータを前記出力用バッファに格納するための出力ポートを指定し、
    前記出力ポートが前記外部メモリと前記内部メモリのいずれに接続されるかを識別するための出力ポート識別情報と、前記出力ポートが接続される前記出力用バッファのアドレスと、を含むタスク情報を前記プロセッサに渡し、
    前記プロセッサは、前記タスク情報に応じて前記出力用バッファに前記処理結果のデータを転送することを特徴とする請求項1に記載の情報処理装置。
  3. 前記タスク管理部は、
    前記処理の対となるデータが前記内部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記内部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記内部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
    前記処理の対となるデータが前記外部メモリに確保された前記入力用バッファに格納されている場合は、前記入力ポートが前記外部メモリに接続されるように前記入力ポート識別情報を設定し、前記処理の対象となるデータが格納された領域の前記外部メモリにおけるアドレスを前記入力用バッファのアドレスとして指定し、
    また前記タスク管理部は、
    前記処理結果のデータを前記内部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記内部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記内部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定し、
    前記処理結果のデータを前記外部メモリに確保された前記出力用バッファに格納する場合は、前記出力ポートが前記外部メモリに接続されるように前記出力ポート識別情報を設定し、前記処理結果のデータを格納する領域の前記外部メモリにおけるアドレスを前記出力用バッファのアドレスとして指定することを特徴とする請求項2に記載の情報処理装置。
  4. 当該情報処理装置は、前記プロセッシング要素を複数備え、
    前記タスク管理部は、前記複数のプロセッシング要素それぞれの動作を制御することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  5. 前記タスク管理部は、
    処理内容の種類が同一である複数のタスクを、1つのタスクキューに、前記タスクが生成される順に格納し、
    前記タスクキューを前記プロセッサに渡し、
    前記プロセッサは、前記タスクキューに従って、前記複数のタスクを実行することを特徴とする請求項2又は請求項3に記載の情報処理装置。
  6. 記タスク管理部は、
    前記タスクキューに格納されている複数のタスクを、
    依存関係の有るタスクが連続して実行されるように、且つ、依存関係の有るタスク間での実行順序が変わらないように並べ替えることを特徴とする請求項5に記載の情報処理装置。
  7. 前記タスク管理部は
    のタスクとの間に依存関係があるタスクについて、
    前記依存関係に関わる入力ポートが、前記内部メモリに確保された前記入力用バッファに接続されるように前記タスク情報を設定することを特徴とする請求項6に記載の情報処理装置。
  8. 前記タスク管理部は
    のタスクとの間に依存関係があるタスクについて、
    前記依存関係に関わる出力ポートが、前記内部メモリに確保された前記出力用バッファに接続されるように前記タスク情報を設定することを特徴とする請求項7に記載の情報処理装置。
  9. プロセッシング要素える情報処理装置が行なう情報処理方法であって、
    前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、
    当該情報処理方法では、
    前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせるにあたり、
    前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なうことを特徴とする情報処理方法。
  10. ロセッシング要素と、前記プロセッシング要素の動作を制御するタスク管理部とを備える情報処理装置に組み込まれる情報処理プログラムであって、
    前記プロセッシング要素は、タスクに対応する処理を実行するプロセッサ、及び前記プロセッサが占有してアクセス可能な内部メモリを含み、
    前記タスク管理部、前記プロセッサによる前記処理の対象となるデータを格納する少なくとも1つの入力用バッファ用の領域と、前記プロセッサが前記処理の対象となるデータに対して行う処理の内容と、前記プロセッサによる前記処理の処理結果のデータを格納する少なくとも1つの出力用バッファ用の領域と、のそれぞれを指定した上で記処理を前記プロセッサに行わせる部分であり、
    前記タスク管理部が、前記タスク間の依存関係に基づいて、該依存関係に関わる入力用バッファ用の領域及び該依存関係に関わる出力用バッファ用の領域が、前記プロセッシング要素の外部に設けられた外部メモリではなく、前記内部メモリに確保されるように前記指定を行なう、
    情報処理装置としてコンピュータを機能させることを特徴とする情報処理プログラム。
JP2012534967A 2010-09-24 2011-08-18 情報処理装置、その方法及びそのプログラム Active JP5825261B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012534967A JP5825261B2 (ja) 2010-09-24 2011-08-18 情報処理装置、その方法及びそのプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010213704 2010-09-24
JP2010213704 2010-09-24
PCT/JP2011/068667 WO2012039216A1 (ja) 2010-09-24 2011-08-18 情報処理装置、その方法及びそのプログラム
JP2012534967A JP5825261B2 (ja) 2010-09-24 2011-08-18 情報処理装置、その方法及びそのプログラム

Publications (2)

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

Family

ID=45873710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012534967A Active JP5825261B2 (ja) 2010-09-24 2011-08-18 情報処理装置、その方法及びそのプログラム

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180026327A (ko) * 2016-09-02 2018-03-12 삼성전자주식회사 자동 스트림 검출 및 할당 알고리즘

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014097442A1 (ja) * 2012-12-20 2014-06-26 三菱電機株式会社 車載装置及びプログラム
AT514444A2 (de) * 2013-06-24 2015-01-15 Fts Computertechnik Gmbh Verfahren und Vorrichtung zur zeitrichtigen Datenübergabe an die zyklischen Tasks in einem verteilten Echtzeitsystem
WO2015194133A1 (ja) 2014-06-19 2015-12-23 日本電気株式会社 演算装置、演算装置の制御方法、及び、演算装置の制御プログラムが記録された記憶媒体
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 (ja) * 2019-02-05 2022-09-30 Kddi株式会社 制御装置、コンピュータプログラム及び情報処理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328134A (ja) * 1998-05-14 1999-11-30 Hitachi Ltd 計算機間データ送受信方法
JP2002207710A (ja) * 2001-01-11 2002-07-26 Mitsubishi Electric Corp マルチプロセッサ信号処理装置
JP2006099579A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 情報処理装置及び情報処理方法
WO2007029421A1 (ja) * 2005-09-05 2007-03-15 Nec Corporation 情報処理装置
JP2007179358A (ja) * 2005-12-28 2007-07-12 Nec Corp 情報処理装置及び再構成デバイスの利用方法
WO2009131167A1 (ja) * 2008-04-23 2009-10-29 日本電気株式会社 マルチプロセッサ制御装置、その方法及びそのプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328134A (ja) * 1998-05-14 1999-11-30 Hitachi Ltd 計算機間データ送受信方法
JP2002207710A (ja) * 2001-01-11 2002-07-26 Mitsubishi Electric Corp マルチプロセッサ信号処理装置
JP2006099579A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 情報処理装置及び情報処理方法
WO2007029421A1 (ja) * 2005-09-05 2007-03-15 Nec Corporation 情報処理装置
JP2007179358A (ja) * 2005-12-28 2007-07-12 Nec Corp 情報処理装置及び再構成デバイスの利用方法
WO2009131167A1 (ja) * 2008-04-23 2009-10-29 日本電気株式会社 マルチプロセッサ制御装置、その方法及びそのプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180026327A (ko) * 2016-09-02 2018-03-12 삼성전자주식회사 자동 스트림 검출 및 할당 알고리즘

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5825261B2 (ja) 情報処理装置、その方法及びそのプログラム
KR100649107B1 (ko) 실시간 동작 수행방법 및 시스템
KR100628492B1 (ko) 실시간 동작 수행방법 및 시스템
US7418705B2 (en) Method and system for performing real-time operation
JP5018480B2 (ja) 情報処理装置
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 (ja) プロセッサ
JP4102425B2 (ja) プロセッサ
JP2007047968A (ja) マルチプロセッサシステム
WO2019178178A1 (en) Thread scheduling for multithreaded data processing environments
JP2012079272A (ja) 録画再生装置、i/oスケジューリング方法、及びプログラム
JP2010186347A (ja) ジョブスケジューリングシステム、ジョブスケジューリング方法及びプログラム
JP5236386B2 (ja) 画像復号装置及び画像復号方法
JP2007122337A (ja) 演算装置
JP7331482B2 (ja) 演算処理装置、及び情報処理装置
JP2010039860A (ja) コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム
JP4410297B2 (ja) リコンフィギャラブル回路
JP3931883B2 (ja) ジョブスケジューリング方法、計算機システムおよびジョブスケジューリングプログラム
JPH11232111A (ja) 情報処理システム

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