(57)【要約】【課題】  アプリケーションを高速に処理する演算処理装置及び方法を提供する。【解決手段】  演算処理装置は、アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するプログラム制御部と、通信チャネルに格納された演算処理情報を用いてアプリケーション演算を処理する演算処理部とを備える。【選択図】      図１
2014021987.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するプログラム制御部と、
前記通信チャネルに格納された演算処理情報を用いて前記アプリケーション演算を処理する演算処理部と、
を備えることを特徴とする演算処理装置。
【請求項２】
前記プログラム制御部は、
前記演算処理部が第１アプリケーション演算の処理を完了する前に、第２アプリケーション演算に必要な演算処理情報を通信チャネルに格納し、
前記第２アプリケーション演算は、前記第１アプリケーション演算後に処理される演算であることを特徴とする請求項１に記載の演算処理装置。
【請求項３】
前記演算処理部は、前記アプリケーション演算の処理結果に対応するフィードバック情報を前記通信チャネルに格納することを特徴とする請求項１または２に記載の演算処理装置。
【請求項４】
前記プログラム制御部は、前記通信チャネルに格納されたフィードバック情報に基づいて第２アプリケーション演算を処理することを特徴とする請求項３に記載の演算処理装置。
【請求項５】
前記プログラム制御部は、優先演算処理が設定されたアプリケーション演算の演算処理情報を前記通信チャネルに格納することを特徴とする請求項１乃至４のいずれか１項に記載の演算処理装置。
【請求項６】
前記演算処理部は、優先演算処理が設定されたアプリケーション演算のフィードバック情報を前記通信チャネルに格納することを特徴とする請求項１乃至５のいずれか１項に記載の演算処理装置。
【請求項７】
前記プログラム制御部は、前記通信チャネルのオーバーフローの存在有無に基づいて前記演算処理情報を前記通信チャネルに格納することを特徴とする請求項１から請求項６のいずれか１項に記載の演算処理装置。
【請求項８】
前記プログラム制御部は、前記アプリケーション演算に必要な演算全体のうち一部の演算を処理し、
前記演算処理部は、前記一部の演算を除いた演算を処理して前記アプリケーション演算の処理を完了することを特徴とする請求項１乃至７のいずれか１項に記載の演算処理装置。
【請求項９】
前記演算処理情報は、前記アプリケーション演算処理に必要なデータ、前記データが格納されたメモリアドレス、及び演算パラメータのうち少なくとも１つを含むことを特徴とする請求項１乃至８のいずれか１項に記載の演算処理装置。
【請求項１０】
第１ライン及び第２ラインを含む通信チャネルをさらに含むことを特徴とする請求項１乃至９のいずれか１項に記載の演算処理装置。
【請求項１１】
前記第１ラインはプログラム制御部から演算処理部に情報を送信し、前記第２ラインは演算処理部からプログラム制御部に情報を送信することを特徴とする請求項１０に記載の演算処理装置。
【請求項１２】
プログラム制御部によるアプリケーションの演算が加速される必要がある場合、前記プログラム制御部は前記第１ラインを介してアプリケーション演算に関連する情報を演算処理部に送信し、
演算処理部は、前記第２ラインを介してアプリケーション演算の処理結果に対応するフィードバック情報をプログラム制御部に送信することを特徴とする請求項１０又は１１に記載の演算処理装置。
【請求項１３】
前記第１ライン及び第２ラインそれぞれは、バッファ、共有メモリ、レジスタ及びハードワイヤーのうち少なくとも１つを含むことを特徴とする請求項１０または請求項１０乃至１２のいずれか１項に記載の演算処理装置。
【請求項１４】
前記通信チャネルは、
前記プログラム制御部から前記演算処理部に情報を送信するＦＩＦＯバッファと、
前記プログラム制御部から前記演算処理部に、前記ＦＩＦＯバッファの送信する情報よりも高い優先度の情報を送信するフォワードクイックＦＩＦＯバッファと、
前記演算処理部から前記プログラム制御部に情報を送信するバックワードＦＩＦＯバッファと、
前記演算処理部から前記プログラム制御部に、前記バックワードＦＩＦＯバッファの送信する情報よりも高い優先度の情報を送信するバックワードクイックＦＩＦＯバッファと、
を含むことを特徴とする、請求項１に記載の演算処理装置。
【請求項１５】
前記プログラム制御部が前記演算処理部の処理結果をチェックする必要がない場合、前記プログラム制御部は前記フォワードＦＩＦＯバッファを介してアプリケーション演算に関連する情報を前記演算処理部に送信し、
前記プログラム制御部が前記演算処理部の処理結果をチェックしなければならない場合、前記プログラム制御部は、前記フォワードクイックＦＩＦＯバッファを介してアプリケーション演算に関連する情報を演算処理部に送信することを特徴とする請求項１４に記載の演算処理装置。
【請求項１６】
前記プログラム制御部が前記演算処理部の処理結果をチェックする必要がない場合、前記演算処理部は、前記バックワードＦＩＦＯバッファを介してアプリケーションの実行された演算を前記プログラム制御部に送信し、
前記プログラム制御部が前記演算処理部の結果をチェックしなければならない場合、前記演算処理部は、前記バックワードクイックＦＩＦＯバッファを介してアプリケーションの実行された演算を前記プログラム制御部に送信することを特徴とする請求項１４または１５に記載の演算処理装置。
【請求項１７】
演算処理装置のプログラム制御部が、アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するステップと、
前記演算処理装置の演算処理部が、前記通信チャネルに格納された演算処理情報を用いてアプリケーション演算を処理するステップと、
を含むことを特徴とする演算処理方法。
【請求項１８】
前記通信チャネルは、前記プログラム制御部から演算処理部に情報を送信する第１ライン及び前記演算処理部からプログラム制御部に情報を送信する第２ラインを含むことを特徴とする請求項１７に記載の演算処理方法。
【請求項１９】
前記演算処理情報を通信チャネルに格納するステップは、
前記演算処理部が前記通信チャネルに格納された演算処理情報を用いて第１アプリケーション演算を処理完了する前に、前記プログラム制御部が第２アプリケーション演算に必要な演算処理情報を通信チャネルに格納し、
前記第２アプリケーション演算は、前記第１アプリケーション演算の後に処理される演算であることを特徴とする請求項１７または１８に記載の演算処理方法。
【請求項２０】
前記演算処理情報を通信チャネルに格納するステップは、前記アプリケーション演算に必要な演算全体のうち一部の演算を処理するステップを有し、
前記アプリケーション演算を処理するステップは、前記一部の演算を除いた演算を処理して前記アプリケーション演算の処理を完了することを特徴とする請求項１７乃至１９のいずれか１項に記載の演算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
下記の説明はアプリケーションを高速に処理する演算処理装置及び方法に関する。
【背景技術】
【０００２】
高性能プロセッサ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの処理装置は、アルゴリズム演算を高速に処理する特定の演算装置を用いて演算処理を加速化する。例えば、特定の演算装置は、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）及びＭＩＭＤ（Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）、ハードウェア加速器などを含んでもよい。ここで、ＳＩＭＤは１つの命令語で数個のデータを処理する並列コンピュータ技術であり、ＭＩＭＤは複数の命令語で数個のデータを処理する並列コンピュータ技術である。
【０００３】
このように、ＳＩＭＤ、ＭＩＭＤなどを用いる場合、プログラム制御装置と特定の演算装置が交互に実行され、アプリケーション演算を処理する。
【０００４】
これによって、プログラム制御装置は、特定の演算装置で演算を処理する間に遊休状態のままとなり、アプリケーションの実行に遅延が発生することがある。同様に、特定の演算装置は、プログラム制御装置でアプリケーション演算またはアプリケーションコードを実行する間に遊休状態のままとなり、アプリケーションの実行に遅延が発生することがある。
【０００５】
そして、プログラム制御装置と特定の演算装置が遊休状態である間にハードウェアが浪費されてその効率が落ちることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、アプリケーションの駆動に必要なアプリケーションコードとアプリケーション演算を並列処理することによって、アプリケーションを迅速に実行することのできる演算処理方法を提供する。
【課題を解決するための手段】
【０００７】
一実施形態に係る演算処理装置は、アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するプログラム制御部と、前記通信チャネルに格納された演算処理情報を用いて前記アプリケーション演算を処理する演算処理部とを備える。
【０００８】
一実施形態に係る演算処理方法は、演算処理装置のプログラム制御部が、アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するステップと、前記演算処理装置の演算処理部が、前記通信チャネルに格納された演算処理情報を用いてアプリケーション演算を処理するステップとを含む。
【発明の効果】
【０００９】
一実施形態によれば、アプリケーションを駆動するために必要なアプリケーションコードとアプリケーション演算を並列処理することができ、アプリケーションを迅速に実行する演算処理方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る演算処理装置が通信チャネルを用いて並列にアプリケーション演算を処理する動作を説明する図である。
【図２】一実施形態に係る演算処理装置の全般的な構成を示す図である。
【図３】一実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。
【図４】他の実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。
【図５】更なる実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。
【図６】更なる実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。
【図７】図２から図６に示す演算処理部がフィードバックフラグを用いてフィードバック情報の必要性を判断する動作を説明するための図である。
【図８】一実施形態に係るプログラム制御部がアプリケーションコードを実行し、演算処理部がアプリケーション演算を処理する動作を説明するための図である。
【図９】一実施形態に係る演算処理装置でアプリケーションの実行を加速化する動作を説明するための図である。
【図１０】一実施形態に係る演算処理装置が１つ以上のプログラム制御部を含む構成を示す図である。
【図１１】一実施形態に係る演算処理方法を示すフローチャートである。
【図１２】一実施形態に係る優先演算処理が設定されたアプリケーション演算を処理する方法を示すフローチャートである。
【図１３】一実施形態に係るフィードバック情報のフィードバック必要性を判断する方法を説明するために提供されるフローチャートである。
【発明を実施するための形態】
【００１１】
以下、実施形態を添付する図面を参照しながら詳細に説明する。一実施形態に係る演算処理方法は演算処理装置によって行われてもよい。各図面に提示された同一の参照符号は同一の部材を示す。
【００１２】
図１は、一実施形態に係る演算処理装置が通信チャネルを用いて並列にアプリケーション演算を処理する動作を説明するために示す図である。図１に示すように、演算処理装置１００は、例えば、プログラム制御部１０１、通信チャネル１０２、及び演算処理部１０３を備える。
【００１３】
プログラム制御部１０１はアプリケーションコードを実行してもよい。アプリケーションコードを実行する間、プログラム制御部１０１は、アプリケーション演算に必要な演算処理情報を通信チャネル１０２に一時的に格納する。ここで、演算処理情報は、アプリケーション演算の処理に必要なデータ、データが格納されたメモリのアドレス、及び演算パラメータのうち少なくとも１つを含んでもよい。
【００１４】
このように、演算処理情報を通信チャネル１０２に格納した後、プログラム制御部１０１は、演算処理部１０３の演算処理結果を待機せず直ちに次のアプリケーション演算を処理する。
【００１５】
例えば、プログラム制御部１０１は、第１アプリケーションコードを実行することにより生じる第１アプリケーション演算に必要な演算処理情報を通信チャネル１０２に一時的に格納する。次に、プログラム制御部１０１は、演算処理部１０３で第１アプリケーション演算の処理を完了するまで待機せず、直ちに第２アプリケーションコードを実行することにより生じる第２アプリケーション演算に必要な演算処理情報を通信チャネル１０２に一時的に格納する。
【００１６】
このように、プログラム制御部１０１は、演算処理部１０３で第１アプリケーション演算の処理を完了する前に、直ちに第２アプリケーション演算を処理して演算処理部１０３による遅延を減少させることができる。このような遅延の減少によってアプリケーションの実行時間が速くなる。
【００１７】
そして、プログラム制御部１０１は、通信チャネル１０２のオーバーフローの存在有無に基づいて演算処理情報を通信チャネル１０２に一時的に格納する。
【００１８】
例えば、通信チャネル１０２が一時的に格納された演算処理情報で一杯になり、通信チャネル１０２がオーバーフローした場合、プログラム制御部１０１は、通信チャネル１０２の格納空間が確保されるまで待機する。ここで、プログラム制御部１０１は、次のアプリケーション演算に必要な演算処理情報を格納するのに十分大きな格納空間が通信チャネル１０２に確保されるまで待機する。
【００１９】
一実施形態によれば、通信チャネル１０２は、複数の分離された通信チャネルまたは第１ライン及び第２ラインのような通信ラインを含んでもよい。通信チャネル１０２の第１ラインは、プログラム制御部１０１から演算処理部１０３に情報を送信してもよい。通信チャネル１０２の第２ラインは、演算処理部１０３からプログラム制御部１０１に情報を送信してもよい。第１ライン及び第２ラインのそれぞれは、バッファ、共有メモリ、レジスタまたはハードワイヤーなどのいずれであっても良い。通信チャネル１０２は、プログラム制御部１０１と演算処理部１０３との間に全二重通信を提供する。
【００２０】
以上で説明したように、プログラム制御部１０１と演算処理部１０３は互いに分担してアプリケーション演算を処理する。ここで、プログラム制御部１０１は、プログラム制御部１０１の演算処理の速度、通信チャネル１０２の格納容量、演算処理部１０３の演算処理速度のうち少なくとも１つに基づいてプログラム制御部１０１で処理する一部の演算量と演算処理部１０３で処理する一部の演算を除いた演算量を決定してもよい。
【００２１】
言い換えれば、プログラム制御部１０１は、前記決定に基づいてアプリケーション演算に必要な演算全体のうち一部の演算を処理し、処理された一部の演算に対応する演算処理情報を通信チャネル１０２に一時的に格納する。これによって、演算処理部１０３は、通信チャネル１０２から演算処理情報を読み出して一部の演算を除いた演算を処理することができる。
【００２２】
例えば、プログラム制御部１０１はアプリケーション演算の演算全体１００％のうちａ％の演算を処理する。そして、プログラム制御部１０１は、ａ％処理された演算の処理結果に対応する演算パラメータを含む演算処理情報を通信チャネル１０２に一時的に格納する。すると、演算処理部１０３は、通信チャネル１０２から演算処理情報を読み出して、残りの（１００−ａ）％の演算を処理する。これによって、アプリケーション演算の処理が完了される。
【００２３】
また、プログラム制御部１０１は、アプリケーションコードを実行してもよい。一実施形態では、演算処理部１０３が、アプリケーション演算を処理するための準備作業として演算処理情報を生成し、演算処理部１０３がアプリケーション演算を処理してもよい。言い換えれば、プログラム制御部１０１はアプリケーション演算を処理せず、演算処理部１０３がアプリケーション演算に必要な演算全体を処理することができる。
【００２４】
図２は、一実施形態に係る演算処理装置の全般的な構成を示す図である。特に、図２は、演算処理装置２００に含まれるプログラム制御部２０１と演算処理部２０５を並列駆動するためのＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）の構成要素を示す図である。
【００２５】
図２に示すように、演算処理装置２００は、プログラム制御部２０１、第１レジスタファイル２０２、第１メモリ２０３、通信チャネル２０４、演算処理部２０５、第２レジスタファイル２０６、第２メモリ２０７、及び第３メモリ２０８を備える。
【００２６】
まず、プログラム制御部２０１は、アプリケーションを駆動するためにアプリケーションコードを実行してもよい。ここで、プログラム制御部２０１は、アプリケーションコードを実行することによりアプリケーション演算に必要な演算処理情報を通信チャネル２０４に一時的に格納する。
【００２７】
一例として、プログラム制御部２０１は、アプリケーション演算に必要な全体演算のうち一部の演算を処理する。そして、プログラム制御部２０１は、処理された一部の演算に対応する演算パラメータを含む演算処理情報を通信チャネル２０４に一時的に格納する。例えば、プログラム制御部２０１で一部の演算を処理した場合、通信チャネル２０４に格納された演算パラメータは、処理された一部の演算の処理結果を含んでもよい。
【００２８】
通信チャネル２０４は、複数の分離された通信チャネルまたは第１ライン及び第２ラインのような通信ラインを含んでもよい。通信チャネル２０４の第１ラインは、プログラム制御部２０１から演算処理部２０５に情報を送信してもよい。通信チャネル２０４の第２ラインは、演算処理部２０５からプログラム制御部２０１に情報を送信してもよい。例えば、通信チャネル２０４のそれぞれの第１ライン及び第２ラインは、バッファ、共有メモリ、レジスタまたはハードワイヤーのいずれか１つであってもよい。通信チャネル２０４は、プログラム制御部２０１と演算処理部２０５との間に全二重通信を提供してもよい。
【００２９】
すると、演算処理部２０５は、通信チャネル２０４から演算処理情報を読み出して一部の演算を除いた演算を処理する。
【００３０】
ここで、アプリケーションコードはアプリケーションを駆動するために演算処理を指示する命令語であり、アプリケーション演算はアプリケーションコードが実行されることによってアプリケーションを駆動するために必要な演算であってもよい。例えば、アプリケーションコードは、条件付き分岐命令、関数呼び出し、及び分岐命令などを含んでもよい。
【００３１】
そして、演算処理情報は、アプリケーション演算処理に必要なデータ、データが格納されたメモリのアドレス、及び演算パラメータのうち少なくとも１つを含んでもよい。
【００３２】
他の例として、プログラム制御部２０１はアプリケーションコードを実行し、演算処理部２０５でアプリケーション演算を処理するための準備作業として演算パラメータを含む演算処理情報を生成する。例えば、準備作業のために用いられる演算パラメータは、演算処理部２０５で処理されるアプリケーション演算で呼び出される関数情報、インデックス情報などを含んでもよい。
【００３３】
これによって、演算処理部２０５は、演算処理情報を用いてアプリケーション演算の演算全体を処理することができる。
【００３４】
第１レジスタファイル２０２及び第１メモリ２０３は、アプリケーション演算処理に必要なデータ及びプログラム制御部２０１で処理したアプリケーション演算の処理結果である演算パラメータを格納する。
【００３５】
通信チャネル２０４は、プログラム制御部２０１で生成した演算処理情報及び演算処理部２０５で生成したフィードバック情報を一時的に格納する格納媒体であってもよい。ここで、通信チャネル２０４は１つ以上の格納媒体を含んでもよい。
【００３６】
例えば、通信チャネル２０４は、バッファ、共有メモリ、レジスタ、及びハードワイヤーの少なくとも１つを含んでもよい。
【００３７】
これによって、演算処理部２０５は、通信チャネル２０４に格納された演算処理情報を用いてアプリケーション演算を処理する。
【００３８】
例えば、演算処理部２０５は処理しようとするアプリケーション演算に必要な全ての演算パラメータが通信チャネル２０４に格納されたかを確認してもよい。通信チャネル２０４に全ての演算パラメータが格納された場合、演算処理部２０５は、演算パラメータを用いてアプリケーション演算の処理を完了する。
【００３９】
次に、演算処理部２０５は、アプリケーション演算を処理した結果に対応するフィードバック情報を第２レジスタファイル２０６、第２メモリ２０７、及び第３メモリ２０８のうち少なくとも１つに格納する。そして、第２レジスタファイル２０６、第２メモリ２０７、及び第３メモリ２０８は、演算処理部２０５で用いられるデータを格納する。
【００４０】
ここで、演算処理部２０５は、必要に応じてフィードバック情報を通信チャネル２０４に格納する。例えば、プログラム制御部２０１でフィードバック情報を必要とする場合、演算処理部２０５はフィードバック情報を通信チャネル２０４に格納してもよい。
【００４１】
一例として、第２アプリケーション演算のために第１アプリケーション演算の処理結果であるフィードバック情報が必要なことがある。
【００４２】
これによって、プログラム制御部２０１は、第１アプリケーション演算のフィードバック情報が必要であることを演算処理部２０５と予め約束してもよい。このように、予め約束された場合、演算処理部２０５は第１アプリケーション演算の処理を完了し、フィードバック情報を通信チャネル２０４に一時的に格納する。これによって、プログラム制御部２０１は、通信チャネル２０４に格納されたフィードバック情報を用いて第２アプリケーション演算を処理する。
【００４３】
他の例として、予め約束されていない場合、演算処理部２０５は、プログラム制御部２０１で第１アプリケーション演算のフィードバック情報を必要とするか否かを示す必要性を判断する。
【００４４】
そして、演算処理部２０５は、判断の結果に基づいてフィードバック情報を通信チャネル２０４に格納する。例えば、通信チャネル２０４に第１アプリケーション演算のための演算パラメータと共にフィードバックフラグが格納されている場合、演算処理部２０５は、プログラム制御部２０１がフィードバック情報を必要とすると判断してフィードバック情報を通信チャネル２０４に一時的に格納する。
【００４５】
図２において、プログラム制御部２０１と演算処理部２０５は、第１レジスタファイル２０２、第１メモリ２０３、第２レジスタファイル２０６、第２メモリ２０７、及び第３メモリ２０８を共有してもよい。ここで、第１メモリ２０３、第２メモリ２０７及び第３メモリ２０８は、命令キャッシュ、データキャッシュ、及びスクラッチパッドメモリなどを含んでもよい。
【００４６】
そして、例示的な実施形態では、プログラム制御部２０１は、１つのレジスタファイル及びメモリを用いるものと説明したが、本発明はこのような例示的な実施形態に限定されない。つまり、プログラム制御部２０１は１つ以上のレジスタファイルと１つ以上のメモリを用いてもよい。同様に、例示的な実施形態では、演算処理部２０５は、１つのレジスタファイルと２つのメモリを用いるものと説明したが、本発明はこのような例示的な実施形態に限定されない。つまり、演算処理部２０５は１つ以上のレジスタファイルと１つ以上のメモリを用いてもよい。
【００４７】
図３は、一実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。図３に示すように、通信チャネル３０３は、第１バッファ３０４及び第２バッファ３０５を備える。例えば、第１バッファ３０４はフォワードＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファを含み、第２バッファ３０５はバックワードＦＩＦＯバッファを含んでもよい。
【００４８】
まず、プログラム制御部３０１は、アプリケーションコードを実行することにより生じる第１から第Ｎアプリケーション演算に必要な演算処理情報を通信チャネル３０３に格納する。
【００４９】
一例として、Ｎ＝５であり、プログラム制御部３０１が第４アプリケーション演算のフィードバック情報を必要とすることを演算処理部３０２と予め約束した場合、プログラム制御部３０１は、第１アプリケーション演算に必要な演算処理情報１を第１バッファ３０４に一時的に格納する。これによって、演算処理部３０２は、第１バッファ３０４に格納された演算処理情報１を読み出して第１アプリケーション演算を処理する。これにより、演算処理情報１は第１バッファ３０４で空になる。
【００５０】
次に、演算処理部３０２で第１バッファ３０４に格納された演算処理情報１を用いて第１アプリケーション演算の処理を完了する前に、プログラム制御部３０１は、第２アプリケーション演算に必要な演算処理情報２を第１バッファ３０４に一時的に格納する。
【００５１】
ここで、演算処理部３０２で第１アプリケーション演算の処理が完了していない場合、プログラム制御部３０１は、第３アプリケーション演算に必要な演算処理情報３を第１バッファ３０４に格納する。これによって、第１バッファ３０４は、演算処理情報２と演算処理情報３を格納していることができる。
【００５２】
そして、プログラム制御部３０１は、第４アプリケーション演算に必要な演算処理情報４を第１バッファ３０４に一時的に格納する。ここで、演算処理部３０２で第１及び第２アプリケーション演算の処理を完了し、第３アプリケーション演算を処理中である場合、プログラム制御部３０１は第４アプリケーション演算のフィードバック情報を待機してもよい。
【００５３】
次に、演算処理部３０２で第３アプリケーション演算の処理を完了した場合、演算処理部３０２は、演算処理情報４を用いて第４アプリケーション演算の処理を完了する。
【００５４】
そして、演算処理部３０２は、第４アプリケーション演算のフィードバック情報を第２バッファ３０５に一時的に格納する。これによって、プログラム制御部３０１は、第２バッファ３０５に格納された第４アプリケーション演算のフィードバック情報を用いて第５アプリケーション演算を処理する。このように、プログラム制御部３０１は、通信チャネル３０３を用いて演算処理部３０２と連動することで、フィードバック情報が必要な場合を除いて演算処理部３０２の演算処理結果を待機することなく、複数のアプリケーション演算を直ちに並列処理することができる。
【００５５】
他の例として、Ｎ＝５であり、プログラム制御部３０１が第４アプリケーション演算のフィードバック情報を必要とすることを演算処理部３０２と予め約束していない場合、演算処理部３０２は第１バッファ３０４を確認して処理しようとするアプリケーション演算のフィードバック情報をプログラム制御部３０１が必要とするか否かを判断する。
【００５６】
ここで、プログラム制御部３０１が演算処理情報１から３を第１バッファ３０４に格納し、演算処理部３０２が第１バッファ３０４に格納された演算処理情報１から３を読み出して第１から第３アプリケーション演算の処理を完了する動作は、フィードバック情報の必要性を予め約束した場合と同一であるため、重複する説明は省略する。
【００５７】
例えば、プログラム制御部３０１は、第４アプリケーション演算に必要な演算処理情報４を第１バッファ３０４に一時的に格納する。ここで、プログラム制御部３０１は、第４アプリケーション演算のフィードバック情報が必要であることを示すフィードバックフラグを第１バッファ３０４に一時的に格納する。これによって、演算処理部３０２は、第１バッファ３０４に格納されたフィードバックフラグに基づいて第４アプリケーション演算のフィードバック情報をプログラム制御部３０１で必要とするものとして判断する。
【００５８】
次に、演算処理部３０２は、第１バッファ３０４に格納された演算処理情報４を読み出して第４アプリケーション演算の処理を完了する。そして、演算処理部３０２は、第４アプリケーション演算のフィードバック情報を第２バッファ３０５に一時的に格納する。これによって、プログラム制御部３０１は、第２バッファ３０５に格納された第４アプリケーション演算のフィードバック情報を用いて第５アプリケーション演算を処理する。
【００５９】
図４は、他の実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。特に、図４は、通信チャネルが演算処理情報を格納する２つのバッファとフィードバック情報を格納する１つのバッファを含む実施形態を示す図である。
【００６０】
図４に示すように、通信チャネル４０３は、第１バッファ４０４、第２バッファ４０５、及び第３バッファ４０６を備える。例えば、第１バッファ４０４はフォワードＦＩＦＯバッファを含み、第２バッファ４０５はバックワードＦＩＦＯバッファを含み、第３バッファ４０６はフォワードクイック（Ｆｏｒｗａｒｄ  Ｑｕｉｃｋ）ＦＩＦＯを含んでもよい。
【００６１】
まず、プログラム制御部４０１は、アプリケーションコードを実行することにより生じる第１から第Ｎアプリケーション演算に必要な演算処理情報を通信チャネル４０３に格納する。
【００６２】
一例として、Ｎ＝５であり、プログラム制御部４０１が第４アプリケーション演算のフィードバック情報を必要とし、第４アプリケーション演算に優先演算処理が設定されたことを演算処理部４０２と予め約束した場合、プログラム制御部４０１は、第１アプリケーション演算に必要な演算処理情報１を第１バッファ４０４に一時的に格納する。ここで、優先演算処理は、プログラム制御部４０１が第５アプリケーション演算を処理するために第４アプリケーション演算のフィードバック情報を直ちに確認する必要がある場合に予め設定されてもよい。
【００６３】
ここで、プログラム制御部４０１は、第１アプリケーション演算に必要な演算処理情報１を第１バッファ４０４に一時的に格納する。これによって、演算処理部４０２は、第１バッファ４０４に格納された演算処理情報１を読み出して第１アプリケーション演算を処理する。これによって、演算処理情報１は第１バッファ４０４で空になる。
【００６４】
次に、演算処理部４０２で第１バッファ４０４に格納された演算処理情報１を用いて第１アプリケーション演算の処理を完了する前に、プログラム制御部４０１は、第２アプリケーション演算に必要な演算処理情報２を第１バッファ４０４に一時的に格納する。
【００６５】
ここで、演算処理部４０２で第１アプリケーション演算の処理が完了していない場合、プログラム制御部４０１は、第３アプリケーション演算に必要な演算処理情報３を第１バッファ４０４に格納する。これによって、第１バッファ４０４は、演算処理情報２と演算処理情報３を格納していることができる。
【００６６】
そして、プログラム制御部４０１は、優先演算処理が設定された第４アプリケーション演算に必要な演算処理情報４を第３バッファ４０６に一時的に格納する。ここで、演算処理部４０２は、順次第１及び第２アプリケーション演算の処理を完了した状態で第３アプリケーション演算を処理するために第１バッファ４０４及び第３バッファ４０６を確認する。これによって、演算処理部４０２は第１バッファ４０４に演算処理情報３が格納され、第３バッファ４０６に演算処理情報４が格納されていることを確認する。
【００６７】
ここで、第３バッファ４０６は、優先演算処理が設定されたアプリケーション演算に必要な演算処理情報が格納されるバッファであるため、演算処理部４０２は、第３バッファ４０６から演算処理情報４を読み出して第４アプリケーション演算を処理する。そして、演算処理部４０２は、第４アプリケーション演算のフィードバック情報を第２バッファ４０５に一時的に格納する。次に、演算処理部４０２は、第１バッファ４０４から演算処理情報３を読み出して第３アプリケーション演算を処理する。
【００６８】
これによって、プログラム制御部４０１は、第２バッファ４０５から第４アプリケーション演算のフィードバック情報を読み出して第５アプリケーション演算に必要な演算処理情報５を第１バッファ４０４に一時的に格納する。これによって、演算処理部４０２は、第１バッファ４０４から演算処理情報５を読み出して第５アプリケーション演算の処理を完了する。
【００６９】
このように、演算処理部４０２は、第３バッファ４０６を用いて優先演算処理が設定されたアプリケーション演算を優先的に処理してフィードバック情報を迅速にプログラム制御部４０１に提供することができる。これによって、プログラム制御部４０１は、次のアプリケーション演算のために以前アプリケーション演算のフィードバック情報を待機する時間を短縮することができる。
【００７０】
他の例として、Ｎ＝５であり、プログラム制御部４０１が第４アプリケーション演算のフィードバック情報を必要とすることを演算処理部４０２と予め約束していない場合、演算処理部４０２は、第１バッファ４０４及び第３バッファ４０６を確認して処理しようとするアプリケーション演算のフィードバック情報をプログラム制御部４０１が必要とするか否かを判断する。ここで、第４アプリケーション演算に優先演算処理が設定されるものと仮定する。
【００７１】
ここで、プログラム制御部４０１が演算処理情報１から３を第１バッファ４０４に格納し、演算処理部４０２が第１バッファ４０４に格納された演算処理情報１から３を読み出して第１から第３アプリケーション演算の処理を完了する動作は、図４でフィードバック情報の必要性を予め約束した場合と同一であるため、重複する説明は省略する。
【００７２】
例えば、プログラム制御部４０１は、第４アプリケーション演算に必要な演算処理情報４を第３バッファ４０６に一時的に格納する。ここで、プログラム制御部４０１は、第４アプリケーション演算のフィードバック情報が必要であることを示すフィードバックフラグを第３バッファ４０６に一時的に格納する。これによって、演算処理部４０２は、第３バッファ４０６に格納されたフィードバックフラグに基づいて第４アプリケーション演算のフィードバック情報をプログラム制御部４０１で必要とするものと判断する。
【００７３】
次に、演算処理部４０２は、第３バッファ４０６に格納された演算処理情報４を読み出して第４アプリケーション演算の処理を完了する。そして、演算処理部４０２は、第４アプリケーション演算のフィードバック情報を第２バッファ４０５に一時的に格納する。これによって、プログラム制御部４０１は、第２バッファ４０５に格納された第４アプリケーション演算のフィードバック情報を用いて第５アプリケーション演算を処理する。
【００７４】
以上の図４を参照して説明したように、アプリケーション演算のフィードバック情報を直ちに確認する必要がある場合、プログラム制御部４０１は優先演算処理が設定されたアプリケーション演算の演算処理情報を第３バッファ４０６に一時的に格納する。そして、アプリケーション演算のフィードバック情報を直ちに確認する必要がない場合、プログラム制御部４０１はアプリケーション演算の演算処理情報を第１バッファ４０４に一時的に格納する。
【００７５】
図５は、更なる実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。特に、図５は、通信チャネルが演算処理情報を格納する１つのバッファとフィードバック情報を格納する２つのバッファを含む実施形態を示す図である。
【００７６】
図５に示すように、通信チャネル５０３は、第１バッファ５０４、第２バッファ５０５、及び第３バッファ５０６を含んでもよい。例えば、第１バッファ５０４はフォワードＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファを含み、第２バッファ５０５はバックワードＦＩＦＯバッファを含み、第３バッファ５０６はバックワードクイック（Ｂａｃｋｗａｒｄ  Ｑｕｉｃｋ）ＦＩＦＯを含んでもよい。
【００７７】
まず、プログラム制御部５０１は、アプリケーションコードを実行することにより生じる第１から第Ｎアプリケーション演算に必要な演算処理情報を通信チャネル５０３に格納する。
【００７８】
一例として、Ｎ＝５であり、プログラム制御部５０１が第２及び第４アプリケーション演算のフィードバック情報を必要とし、第４アプリケーション演算に優先演算処理が設定されたことを演算処理部５０２と予め約束した場合、プログラム制御部５０１は、第１アプリケーション演算に必要な演算処理情報１を第１バッファ５０４に一時的に格納する。ここで、プログラム制御部５０１が第２及び第４アプリケーション演算のフィードバック情報を用いて第５アプリケーション演算を処理することを仮定する。
【００７９】
プログラム制御部５０１は、第１アプリケーション演算に必要な演算処理情報１を第１バッファ５０４に一時的に格納する。これによって、演算処理部５０２は、第１バッファ５０４に格納された演算処理情報１を読み出して第１アプリケーション演算を処理する。これによって、演算処理情報１は第１バッファ５０４で空になる。
【００８０】
次に、演算処理部５０２で第１バッファ５０４に格納された演算処理情報１を用いて第１アプリケーション演算の処理を完了する前に、プログラム制御部５０１は、第２アプリケーション演算に必要な演算処理情報２を第１バッファ５０４に一時的に格納する。そして、プログラム制御部５０１は、第３アプリケーション演算に必要な演算処理情報３と第４アプリケーション演算に必要な演算処理情報４を第１バッファ５０４に一時的に格納する。
【００８１】
これによって、演算処理部５０２は、第２から第３アプリケーション演算を順次処理完了してもよい。そして、演算処理部５０２は、第２アプリケーション演算のフィードバック情報を第２バッファ５０５に一時的に格納する。
【００８２】
次に、演算処理部５０２は第４アプリケーション演算の処理を完了し、第４アプリケーション演算のフィードバック情報を第３バッファ５０６に一時的に格納する。これによって、プログラム制御部５０１は、第２バッファ５０５から第２アプリケーション演算のフィードバック情報を読み出し、第３バッファ５０６から第４アプリケーション演算のフィードバック情報を読み出して第５アプリケーション演算に必要な演算処理情報５を生成する。
【００８３】
そして、プログラム制御部５０１は、演算処理情報５を第１バッファ５０４に一時的に格納する。これによって、演算処理部５０２は、演算処理情報５を用いて第５アプリケーションの演算処理を完了する。
【００８４】
他の例として、Ｎ＝５であり、プログラム制御部５０１が第２及び第４アプリケーション演算のフィードバック情報を必要とすることを演算処理部５０２と予め約束していない場合、演算処理部５０２は、第１バッファ５０４を確認して処理しようとするアプリケーション演算のフィードバック情報をプログラム制御部５０１が必要とするか否かを判断する。
【００８５】
ここで、プログラム制御部５０１が第２及び第４アプリケーション演算のフィードバック情報を用いて第５アプリケーション演算を処理し、第４アプリケーション演算に優先演算処理が設定されたことを仮定する。
【００８６】
ここで、プログラム制御部５０１が演算処理情報１から４を第１バッファ５０４に順次格納し、演算処理部５０２が第１バッファ５０４に格納された演算処理情報１から４を読み出して第１から第４アプリケーション演算の処理を完了する動作は、図５を参照してフィードバック情報の必要性を予め約束した場合と同一であるため、重複する説明は省略する。
【００８７】
例えば、プログラム制御部５０１は、演算処理情報２と共に第２アプリケーション演算のフィードバックフラグを第１バッファ５０４に一時的に格納する。これによって、演算処理部５０２は、第１バッファ５０４に格納された第２アプリケーション演算のフィードバックフラグに基づいて第２アプリケーション演算のフィードバック情報をプログラム制御部５０１で必要とするものと判断する。そして、演算処理部５０２は、第２アプリケーション演算のフィードバック情報を第２バッファ５０５に一時的に格納する。
【００８８】
同様に、プログラム制御部５０１は、演算処理情報３と共に第３アプリケーション演算のフィードバックフラグを第１バッファ５０４に一時的に格納する。これによって、演算処理部５０２は、第１バッファ５０４に格納された第４アプリケーション演算のフィードバックフラグに基づいて第４アプリケーション演算のフィードバック情報をプログラム制御部５０１で必要とするものと判断する。そして、演算処理部５０２は、第４アプリケーション演算のフィードバック情報を第３バッファ５０６に一時的に格納する。
【００８９】
これによって、プログラム制御部５０１は、第２バッファ５０５及び第３バッファ５０６から第２及び第３アプリケーション演算のフィードバック情報を読み出し、第５アプリケーション演算に必要な演算処理情報５を生成する。そして、プログラム制御部５０１は、演算処理情報５を第１バッファ５０４に格納する。これによって、演算処理部５０２は演算処理情報５を用いて第５アプリケーション演算の処理を完了する。
【００９０】
図６は、更なる実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。特に、図６は、通信チャネルが演算処理情報を格納する２つのバッファとフィードバック情報を格納する２つのバッファを含む実施形態を示す図である。
【００９１】
図６に示すように、通信チャネル６０３は、第１バッファ６０４、第２バッファ６０５、第３バッファ６０６、及び第４バッファ６０７を備える。例えば、第１バッファ６０４はフォワードＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファを含み、第２バッファ６０５はバックワードＦＩＦＯバッファを含み、第３バッファ６０６はフォワードクイックＦＩＦＯバッファを含み、第４バッファ６０７はバックワードクイックＦＩＦＯを含んでもよい。
【００９２】
まず、プログラム制御部６０１は、アプリケーションコードを実行することにより生じる第１から第Ｎアプリケーション演算に必要な演算処理情報を通信チャネル６０３に格納する。ここで、第２から第Ｎアプリケーション演算は第１アプリケーション演算後に処理される演算であってもよい。
【００９３】
一例として、Ｎ＝６であり、プログラム制御部６０１が第２及び第４アプリケーション演算のフィードバック情報を必要とし、第４アプリケーション演算に優先演算処理が設定されたことを演算処理部６０２と予め約束した場合、プログラム制御部６０１は、第１アプリケーション演算に必要な演算処理情報１を第１バッファ６０４に一時的に格納する。ここで、プログラム制御部６０１が第４アプリケーション演算のフィードバック情報を用いて第５アプリケーション演算を処理し、第２アプリケーション演算のフィードバック情報を用いて第６アプリケーション演算を処理することを仮定する。
【００９４】
具体的に、プログラム制御部６０１は、第１アプリケーション演算に必要な演算処理情報１を第１バッファ６０４に一時的に格納する。これによって、演算処理部６０２は、第１バッファ６０４に格納された演算処理情報１を読み出して第１アプリケーション演算を処理する。これによって、演算処理情報１は第１バッファ６０４で空になる。
【００９５】
ここで、演算処理部６０２で第１バッファ６０４に格納された演算処理情報１を用いて第１アプリケーション演算の処理を完了する前に、プログラム制御部６０１は、第２アプリケーション演算に必要な演算処理情報２を第１バッファ６０４に一時的に格納する。
【００９６】
そして、プログラム制御部６０１は、第３アプリケーション演算に必要な演算処理情報３を第１バッファ６０４に一時的に格納する。ここで、演算処理部６０２で第１アプリケーション演算の処理を完了していない場合、第１バッファ６０４は、演算処理情報２及び演算処理情報３を順次格納していることができる。
【００９７】
次に、プログラム制御部６０１は、演算処理情報３を第１バッファ６０４に格納した後、すなわち、直ちに第４アプリケーション演算に必要な演算処理情報４を第３バッファ６０６に格納する。これによって、第１バッファ６０４は演算処理情報２及び演算処理情報３を格納し、第３バッファ６０６は演算処理情報４を格納していることができる。
【００９８】
ここで、演算処理部６０２で第１アプリケーション演算の処理を完了した場合、演算処理部６０２は第１バッファ６０４及び第３バッファ６０６を確認する。そして、演算処理部６０２は、第３バッファ６０６から演算処理情報４を読み出して優先演算処理が設定された第４アプリケーション演算のフィードバック情報を生成する。次に、演算処理部６０２は、第４アプリケーション演算のフィードバック情報を第４バッファ６０７に一時的に格納する。言い換えれば、演算処理部６０２は、第２及び第３アプリケーション演算よりも第４アプリケーション演算を優先的に処理する。
【００９９】
そして、第４アプリケーション演算のフィードバック情報を第４バッファ６０７に格納した後、演算処理部６０２は第１バッファ６０４から演算処理情報２を読み出して第２アプリケーション演算を処理する。
【０１００】
ここで、プログラム制御部６０１は、演算処理部６０２で第２アプリケーション演算を処理する間に第５アプリケーション演算に必要な演算処理情報５の生成を開始する。言い換えれば、プログラム制御部６０１は、第４バッファ６０７で第４アプリケーション演算のフィードバック情報を用いて演算処理情報５の生成を開始してもよい。これによって、第４バッファ６０７は空になる。
【０１０１】
ここで、プログラム制御部６０１で演算処理情報５の生成を完了する前に、演算処理部６０２は第２アプリケーション演算の処理を完了する。これによって、演算処理部６０２は第２アプリケーション演算のフィードバック情報を第２バッファ６０５に一時的に格納する。
【０１０２】
そして、演算処理部６０２は第２アプリケーション演算の処理を完了した後、演算処理部６０２は第１バッファ６０４から演算処理情報３を読み出して第３アプリケーション演算を処理する。ここで、プログラム制御部６０１は、演算処理部６０２で第３アプリケーション演算を処理する間に演算処理情報５の生成を完了する。これによって、プログラム制御部６０１は、演算処理情報５を第１バッファ６０４に一時的に格納する。
【０１０３】
次に、演算処理部６０２は第３アプリケーション演算の処理を完了した後、演算処理部６０２は、第１バッファ６０４から演算処理情報５を読み出して第５アプリケーション演算を処理する。
【０１０４】
ここで、プログラム制御部６０１は、演算処理部６０２で第５アプリケーション演算を処理する間に第６アプリケーション演算に必要な演算処理情報６を生成する。言い換えれば、プログラム制御部６０１は、第２バッファ６０５から第２アプリケーションのフィードバック情報を読み出して演算処理情報６を生成する。そして、プログラム制御部６０１は演算処理情報６を第１バッファ６０４に一時的に格納する。
【０１０５】
これによって、演算処理部６０２は、演算処理情報６を用いて第６アプリケーション演算の処理を完了する。このように、プログラム制御部６０１と演算処理部６０２は、第１から第４バッファを用いて複数のアプリケーション演算を並列処理することで、フィードバック情報を要求するアプリケーション演算の処理時に発生する遅延を減少させることができる。これによって、アプリケーションの実行時間は短縮され得る。
【０１０６】
他の例として、Ｎ＝６であり、プログラム制御部６０１が第２及び第４アプリケーション演算のフィードバック情報を必要であることを予め約束していない場合、演算処理部６０２は、第１バッファ６０４及び第３バッファ６０６を確認して処理しようとするアプリケーション演算のフィードバック情報をプログラム制御部６０１が必要とするか否かを判断する。
【０１０７】
ここで、プログラム制御部６０１が第４アプリケーション演算のフィードバック情報を用いて第５アプリケーション演算を処理し、第２アプリケーション演算のフィードバック情報を用いて第６アプリケーション演算を処理し、第４アプリケーション演算に優先演算処理が設定されることを仮定する。
【０１０８】
まず、プログラム制御部６０１は、第１アプリケーション演算に必要な演算処理情報１を第１バッファ６０４に一時的に格納する。これによって、演算処理部６０２は、第１バッファ６０４に格納された演算処理情報１を読み出して第１アプリケーション演算を処理する。これによって、演算処理情報１は第１バッファ６０４で空になる。
【０１０９】
ここで、演算処理部６０２で第１バッファ６０４に格納された演算処理情報１を用いて第１アプリケーション演算の処理を完了する前に、プログラム制御部６０１は、第２アプリケーション演算に必要な演算処理情報２を第１バッファ６０４に一時的に格納する。ここで、プログラム制御部６０１は、第２アプリケーション演算のフィードバックフラグを演算処理情報２と共に第１バッファ６０４に一時的に格納する。
【０１１０】
そして、プログラム制御部６０１は、第３アプリケーション演算に必要な演算処理情報３を第１バッファ６０４に一時的に格納する。例えば、演算処理部６０２で第１アプリケーション演算の処理を完了していない場合、第１バッファ６０４は、第２アプリケーション演算のフィードバックフラグ、演算処理情報２及び演算処理情報３を順次格納してもよい。
【０１１１】
次に、演算処理情報３を第１バッファ６０４に格納した後、直ちにプログラム制御部６０１は第４アプリケーション演算に必要な演算処理情報４を第３バッファ６０６に格納する。ここで、プログラム制御部６０１は、第４アプリケーション演算のフィードバックフラグを演算処理情報４と共に第３バッファ６０６に一時的に格納する。
【０１１２】
これによって、第１バッファ６０４は第２アプリケーション演算のフィードバックフラグ、演算処理情報２及び演算処理情報３を格納し、第３バッファ６０６は第４アプリケーション演算のフィードバックフラグ、及び演算処理情報４を格納する。
【０１１３】
ここで、演算処理部６０２で第１アプリケーション演算の処理を完了した場合、演算処理部６０２は第１バッファ６０４及び第３バッファ６０６を確認する。これによって、演算処理部６０２は、第３バッファ６０６から第４アプリケーション演算のフィードバックフラグを読み出して第４アプリケーション演算のフィードバック情報をプログラム制御部６０１で必要とするものと判断する。
【０１１４】
これによって、演算処理部６０２は、第３バッファ６０６から演算処理情報４を読み出して優先演算処理が設定された第４アプリケーション演算のフィードバック情報を生成する。そして、演算処理部６０２は、第４アプリケーション演算のフィードバック情報を第４バッファ６０７に一時的に格納する。言い換えれば、演算処理部６０２は、第２及び第３アプリケーション演算よりも第４アプリケーション演算を優先的に処理する。
【０１１５】
ここで、第４アプリケーション演算のフィードバック情報を第４バッファ６０７に格納した後、演算処理部６０２は、第１バッファ６０４から第２アプリケーション演算のフィードバックフラグを読み出して第２アプリケーション演算のフィードバック情報をプログラム制御部６０１で必要とするものと判断する。これによって、演算処理部６０２は、第１バッファ６０４から演算処理情報２を読み出して第２アプリケーション演算を処理する。
【０１１６】
ここで、プログラム制御部６０１は、演算処理部６０２で第２アプリケーション演算を処理する間に第５アプリケーション演算に必要な演算処理情報５の生成を開始する。言い換えれば、プログラム制御部６０１は、第４バッファ６０７で第４アプリケーション演算のフィードバック情報を用いて演算処理情報５の生成を開始してもよい。これによって、第４バッファ６０７は空になる。
【０１１７】
ここで、プログラム制御部６０１で演算処理情報５の生成を完了する前に、演算処理部６０２は第２アプリケーション演算の処理を完了する。これによって、演算処理部６０２は第２アプリケーション演算のフィードバック情報を第２バッファ６０５に一時的に格納する。
【０１１８】
そして、演算処理部６０２は第２アプリケーション演算の処理を完了した後、演算処理部６０２は、第１バッファ６０４から演算処理情報３を読み出して第３アプリケーション演算を処理する。ここで、プログラム制御部６０１は、演算処理部６０２で第３アプリケーション演算を処理する間、演算処理情報５の生成を完了してもよい。これによって、プログラム制御部６０１は演算処理情報５を第１バッファ６０４に一時的に格納する。
【０１１９】
次に、演算処理部６０２は第３アプリケーション演算の処理を完了した後、演算処理部６０２は、第１バッファ６０４から演算処理情報５を読み出して第５アプリケーション演算を処理する。
【０１２０】
ここで、プログラム制御部６０１は、演算処理部６０２で第５アプリケーション演算を処理する間に第６アプリケーション演算に必要な演算処理情報６を生成する。言い換えれば、プログラム制御部６０１は、第２バッファ６０５から第２アプリケーションのフィードバック情報を読み出して演算処理情報６を生成してもよい。そして、プログラム制御部６０１は、演算処理情報６を第１バッファ６０４に一時的に格納する。これによって、演算処理部６０２は、演算処理情報６を用いて第６アプリケーション演算の処理を完了する。
【０１２１】
以上の図４、図５、及び図６では第４アプリケーション演算に優先演算処理が予め設定されたことと仮定したが、本発明はこの例示的な実施形態に限定されない。演算処理部は処理しようとするアプリケーション演算に優先演算処理が設定されたか否かを判断してもよい。
【０１２２】
例えば、優先演算処理が必要な場合、プログラム制御部は、優先演算処理が必要なアプリケーション演算の演算処理情報と共に、優先演算フラグを通信チャネルに一時的に格納する。これにより、演算処理部は通信チャネルに格納された優先演算フラグを確認し、処理しようとするアプリケーション演算に優先演算処理が設定されたか否かを判断する。
【０１２３】
以上の図３〜図６において、通信チャネルはバッファを用いて演算処理情報及びフィードバック情報のうち少なくとも１つを一時的に格納するものと説明したが、本発明はこの例示的な実施形態に限定されない。通信チャネルは、共有メモリ、レジスタ、及びハードワイヤーのうち少なくとも１つを含んでもよい。
【０１２４】
図７は、図２から図６に示す演算処理部がフィードバックフラグを用いてフィードバック情報の必要性を判断する動作を説明するための図である。
【０１２５】
図７に示すように、プログラム制御部７０１は、アプリケーションコードを実行することにより生じる第１アプリケーション演算に必要な演算処理情報を通信チャネル７０３に一時的に格納する。
【０１２６】
例えば、プログラム制御部７０１は、演算処理部７０２で第１アプリケーション演算の処理を完了することができるように、第１アプリケーション演算に必要な演算パラメータ７０５を第１バッファ７０４に一時的に格納する。ここで、プログラム制御部７０１は、第１アプリケーション演算のフィードバックフラグ（Ｆ）７０６を演算パラメータ７０５と共に第１バッファ７０４に格納する。
【０１２７】
すると、演算処理部７０２は第１バッファ７０４を確認し、第１アプリケーション演算のフィードバックフラグ７０６に基づいて第１アプリケーション演算のフィードバック情報をプログラム制御部７０１が必要とするものと判断する。
【０１２８】
ここで、演算処理部７０２は第１バッファ７０４を確認し、第１アプリケーション演算の処理のための全ての演算パラメータが第１バッファ７０４に格納されたか否かを確認する。全ての演算パラメータが格納された場合、演算処理部７０２は、演算パラメータ７０５を用いて第１アプリケーション演算の処理を完了する。そして、演算処理部７０２は、第１アプリケーション演算のフィードバック情報を第２バッファ７０７に一時的に格納する。
【０１２９】
以上の図３〜図７において、（１）プログラム制御部と演算処理部が互いに分担してアプリケーション演算を処理し、（２）プログラム制御部はアプリケーションコードを実行し、演算処理部はアプリケーション演算に必要な全体演算を処理する。
【０１３０】
図８は、一実施形態に係るプログラム制御部がアプリケーションコードを実行し、演算処理部がアプリケーション演算を処理する動作を説明するための図である。特に、図８は、プログラム制御部は６個のアプリケーション演算に必要なアプリケーションコードを実行し、演算処理部は６個のアプリケーション演算を処理する実施形態を説明するための図である。
【０１３１】
図８において、通信チャネルは第１から第４バッファを含み、第１バッファはフォワードＦＩＦＯバッファ、第２バッファはバックワードＦＩＦＯバッファ、第３バッファはフォワードクイックＦＩＦＯバッファ、及び第４バッファはバックワードクイックＦＩＦＯバッファであると仮定する。
【０１３２】
そして、第４アプリケーション演算は優先演算処理が設定され、プログラム制御部８０１は第３アプリケーション演算のフィードバック情報と第４アプリケーション演算のフィードバック情報を必要とすることを演算処理部８０２と予め約束したものと仮定する。そして、第５アプリケーション演算は第４アプリケーション演算のフィードバック情報を必要とし、第６アプリケーション演算を第３アプリケーション演算のフィードバック情報を必要とすると仮定する。
【０１３３】
図８に示すように、プログラム制御部８０１は、第１アプリケーションコードを実行して第１アプリケーション演算を処理する。一例として、プログラム制御部８０１は、演算処理部８０２で第１アプリケーション演算を処理するために必要な演算パラメータを生成する。例えば、第１アプリケーション演算の処理を準備するために用いられる演算パラメータは、第１アプリケーション演算で呼び出される関数情報、インデックス情報などを含んでもよい。
【０１３４】
そして、プログラム制御部８０１は、第１アプリケーション演算を処理するために必要な演算パラメータ、第１アプリケーション演算処理に必要なデータ、及びデータが格納されたメモリアドレスのうち少なくとも１つを含む演算処理情報１を第１バッファ８０３に一時的に格納する。
【０１３５】
そして、演算処理部８０２は第１及び第３バッファを確認する。これによって、演算処理部８０２は、第１バッファ８０３に演算処理情報１が一時的に格納されることを確認する。そして、演算処理部８０２は、第１バッファ８０３から演算処理情報１を読み出して第１アプリケーション演算を処理する。このように、演算処理情報１が読み出されることにより、第１バッファ８０３は空になる。
【０１３６】
ここで、演算処理情報１が第１バッファ８０３に一時的に格納される即時に、プログラム制御部８０１は第２アプリケーションコードを実行して第２アプリケーション演算の処理を準備する。これによって、プログラム制御部８０１は演算処理情報２を第１バッファ８０４に一時的に格納する。次に、演算処理情報２が第１バッファ８０４に一時的に格納される即時、プログラム制御部８０１は、第３アプリケーションコードを実行して第３アプリケーション演算の処理を準備してもよい。
【０１３７】
これによって、プログラム制御部８１０は演算処理情報３を第１バッファ８０５に一時的に格納する。ここで、演算処理部８０２で第１アプリケーション演算の処理を完了していない場合、第１バッファ８０５は演算処理情報２及び演算処理情報３を一時的に格納する。次に、第１アプリケーション演算の処理が完了した場合、演算処理部８０２は、第１バッファ８０５から演算処理情報２を読み出して第２アプリケーション演算を処理する。すると、演算処理情報２は第１バッファ８０６で空になり、演算処理情報３は第１バッファ８０６に残っていてもよい。
【０１３８】
そして、演算処理情報３が第１バッファ８０５に一時的に格納される即時に、プログラム制御部８０１は、第４アプリケーションコードを実行して第４アプリケーション演算の処理を準備する。ここで、プログラム制御部８０１は、第４アプリケーション演算に優先演算処理が設定されることによって、演算処理情報４を第３バッファ８０７に一時的に格納する。
【０１３９】
ここで、演算処理情報４が第３バッファ８０７に一時的に格納された場合、演算処理部８０２は、第２アプリケーション演算を処理している間であってもよい。すると、第１バッファ８０６は演算処理情報３を格納し、第３バッファ８０７は演算処理情報４を格納する。
【０１４０】
ここで、第５アプリケーション演算は、第４アプリケーション演算のフィードバック情報を用いて処理されてもよい。これによって、プログラム制御部８０１は、演算処理部８０２で第４アプリケーション演算の処理を完了するまで待機する。例えば、プログラム制御部８０１は、第４アプリケーション演算のフィードバック情報が第４バッファ８０９に格納されるまで第４バッファ８０９を確認して待機してもよい。
【０１４１】
そして、第２アプリケーション演算の処理が完了した場合、演算処理部８０２は第１バッファ８０６及び第３バッファ８０７を確認する。ここで、第３バッファ８０７は、優先演算処理が設定されたアプリケーション演算の演算処理情報を格納するバッファであってもよい。言い換えれば、第３バッファは、第１バッファに格納された演算処理情報よりも優先処理が必要な演算処理情報を格納するバッファである。
【０１４２】
これによって、演算処理部８０２は、第３バッファ８０７から演算処理情報４を読み出して第４アプリケーション演算を処理する。これによって、第３バッファ８０８は空になる。
【０１４３】
そして、演算処理部８０２は、第４アプリケーション演算のフィードバック情報を第４バッファ８０９に一時的に格納する。ここで、第４バッファ８０９は、優先演算処理が設定されたアプリケーション演算のフィードバック情報を格納するバッファであってもよい。言い換えれば、第４バッファ８０９は、次のアプリケーション演算の処理のためにプログラム制御部８０１で直ちに確認が必要なアプリケーション演算のフィードバック情報を格納するバッファであってもよい。
【０１４４】
ここで、第４アプリケーション演算のフィードバック情報が第４バッファ８０９に格納されると直ちに、演算処理部８０２は第１バッファ８１０から演算処理情報３を読み出して第３アプリケーション演算を処理する。
【０１４５】
ここで、演算処理部８０２で第３アプリケーション演算処理を完了する前に、プログラム制御部８０１は、第４バッファ８０９から第４アプリケーション演算のフィードバック情報を読み出して第５アプリケーション演算の処理を準備する。そして、プログラム制御部８０１は、演算処理情報５を第１バッファ８１１に一時的に格納する。次に、プログラム制御部８０１は、第４バッファ８１２に第３アプリケーションのフィードバック情報が格納されるまで待機する。
【０１４６】
ここで、第３アプリケーション演算の処理が完了した場合、演算処理部８０２は、第３アプリケーションのフィードバック情報を第４バッファ８１２に一時的に格納する。ここで、演算処理部８０２は、第３アプリケーション演算のフィードバック情報を第２バッファ（図示せず）に一時的に格納する。
【０１４７】
これによって、プログラム制御部８０１は第６アプリケーションコードを実行し、第４バッファ８１２から第３アプリケーションのフィードバック情報を読み出して第６アプリケーション演算の処理を準備する。そして、プログラム制御部８０１は、演算処理情報６を第１バッファ８１３に一時的に格納する。
【０１４８】
ここで、演算処理部８０２で第５アプリケーション演算を処理している場合、演算処理部８０２は第５アプリケーション演算の処理を完了した後、演算処理情報６を用いて第６アプリケーション演算の処理を完了する。
【０１４９】
図９は、一実施形態に係る演算処理装置でアプリケーションの実行を加速化する動作を説明するための図である。図９において、演算処理装置は、１つのマクロブロックを処理するビデオ動画復号化処理アプリケーションを実行する場合を仮定する。
【０１５０】
図９に示すように、プログラム制御部９０１は、７１４サイクルの間にビデオ動画復号化処理アプリケーションを実行するためのアプリケーションコード及びアプリケーション演算を処理する。そして、演算処理部９０２は、５３６サイクルの間にビデオ動画復号化処理アプリケーションを実行するためのアプリケーション演算を処理する。
【０１５１】
ここで、プログラム制御部９０１は、アプリケーションコードの実行に係るアプリケーション演算を演算処理部９０２と交差に処理することなく、同時に並列演算の処理を行ってアプリケーションの実行を加速化することができる。
【０１５２】
例えば、プログラム制御部９０１は１０２サイクルの間にアプリケーション演算を処理し、演算処理部９０２で２１サイクルの間にアプリケーション演算を処理するまで待機することなく、直ちに１２９サイクルの間に他のアプリケーション演算を処理してもよい。
【０１５３】
同様に、演算処理部９０２は２１サイクルの間にアプリケーション演算を処理し、プログラム制御部９０１が１０２サイクルの間にアプリケーション演算を処理するまで待機することなく、直ちに７サイクルの間、他のアプリケーション演算を処理する。これによって、アプリケーション演算処理時に待機する間に発生する遅延が減少または除去されることで、アプリケーションの実行時間が短縮され得る。
【０１５４】
図１０は、一実施形態に係る演算処理装置が１つ以上のプログラム制御部を備える構成を示す図である。図１０に示すように、演算処理装置は１つ以上のプログラム制御部１００１、１つ以上の演算処理部１００２、及び通信チャネル１００３を備える。
【０１５５】
一例として、Ｎ個のプログラム制御部は第１から第Ｎアプリケーションコードを互いに分けて実行し、第１から第Ｎアプリケーション演算の処理を準備してもよい。そして、Ｎ個のプログラム制御部は演算処理情報１から演算処理情報Ｎを通信チャネルに一時的に格納してもよい。
【０１５６】
そして、Ｍ個の演算処理部は、第１から第Ｎアプリケーション演算を互いに分けて並列処理する。ここで、Ｍ個の演算処理部は、演算処理情報１から演算処理情報Ｎを用いて第１から第Ｎアプリケーション演算を処理する。ここで、ＮとＭは同一であってもよく、互いに異なってもよい。言い換えれば、演算処理部とプログラム制御部の個数が同一であってもよく、異なってもよい。
【０１５７】
ここで、Ｍ個の演算処理部は必要に応じてフィードバック情報を通信チャネルに一時的に格納する。ここで、必要に応じてフィードバック情報を通信チャネルに格納する動作は、図２に示す演算処理部でフィードバック情報を通信チャネルに格納する動作と同一であるため、重複する説明は省略する。
【０１５８】
他の例として、Ｎ個のプログラム制御部は、第１から第Ｎアプリケーションコードを互いに分けて実行してもよい。そして、Ｎ個のプログラム制御部は、それぞれで実行するアプリケーションコードに該当するアプリケーション演算の一部の演算を処理してもよい。そして、Ｎ個のプログラム制御部は、処理された一部の演算の演算結果を含む演算処理情報を通信チャネルに一時的に格納してもよい。
【０１５９】
これによって、Ｍ個の演算処理部は、Ｎ個のアプリケーション演算を対象にＮ個のプログラム制御部で処理された一部の演算を除いた演算を処理する。このように、アプリケーションコードとアプリケーション演算を行うプログラム制御部と演算処理部の個数が増加するほど、アプリケーションの実行時間が短縮され、その効率性が高くなる。
【０１６０】
図１１は、一実施形態に係る演算処理方法を示すフローチャートである。図１１に示す演算処理方法は図２に示す演算処理装置によって行われ、演算処理装置はプログラム制御部及び演算処理部を備えてもよい。
【０１６１】
図１１に示すように、ステップＳ１１０１においてプログラム制御部は、アプリケーションコードを実行する。
【０１６２】
ここで、アプリケーションコードは、アプリケーションを駆動するために演算処理を指示する命令語であってもよい。例えば、アプリケーションコードは、条件付き分岐命令、関数呼び出し、及び分岐命令などを含んでもよい。
【０１６３】
そして、ステップＳ１１０２においてプログラム制御部は、アプリケーション演算に必要な演算処理情報を通信チャネルに一時的に格納する。
【０１６４】
ここで、アプリケーション演算は、アプリケーションコードが実行されることによってアプリケーションを駆動するために必要な演算であってもよい。そして、演算処理情報は、アプリケーション演算の処理に必要なデータ、データが格納されたメモリのアドレス、及び演算パラメータのうち少なくとも１つを含んでもよい。
【０１６５】
一例として、プログラム制御部は、アプリケーションコードの実行に基づいてアプリケーション演算の処理を準備してもよい。すなわち、プログラム制御部は、演算処理部でアプリケーション演算を処理するために必要とする演算パラメータを準備して通信チャネルに一時的に格納する。例えば、準備作業のために用いられる演算パラメータは、演算処理部で処理されるアプリケーション演算で呼び出される関数情報、インデックス情報などを含んでもよい。
【０１６６】
他の例として、プログラム制御部は、アプリケーションコードの実行に基づいてアプリケーション演算の全体演算のうちの一部の演算を処理してもよい。そして、プログラム制御部は、処理された一部の演算に該当する演算パラメータを通信チャネルに一時的に格納してもよい。例えば、プログラム制御部で一部の演算を処理した場合、通信チャネルに格納された演算パラメータは、処理された一部の演算の処理結果を含んでもよい。
【０１６７】
ここで、プログラム制御部は、通信チャネルのオーバーフローの存在有無に基づいて演算処理情報を通信チャネルに格納する。例えば、オーバーフローが存在する場合、プログラム制御部は、通信チャネルの格納空間が確保されるまで待機した後、演算処理情報を通信チャネルに格納してもよい。
【０１６８】
次に、ステップＳ１１０３において、演算処理情報を通信チャネルに格納した後、プログラム制御部は次のアプリケーションコードを実行する。そして、プログラム制御部は、次のアプリケーション演算に必要な演算処理情報を通信チャネルに一時的に格納する。言い換えれば、プログラム制御部は、演算処理部でアプリケーション演算の処理を完了するまで待機せず、次のアプリケーションコードを実行してもよい。
【０１６９】
例えば、プログラム制御部は、第１アプリケーション演算に必要な演算処理情報１を通信チャネルに一時的に格納した後、第１アプリケーション演算の処理が完了する前に第２アプリケーション演算に必要な演算処理情報２を通信チャネルに一時的に格納してもよい。ここで、第２アプリケーション演算は、第１アプリケーション演算後に処理される演算であってもよい。
【０１７０】
次に、ステップＳ１１０４において演算処理部は、通信チャネルに演算処理情報が格納されたか否かを確認する。
【０１７１】
ここで、通信チャネルは、演算処理情報、及びフィードバック情報のうち少なくとも１つを一時的に格納する格納空間である。例えば、通信チャネルは、バッファ、共有メモリ、レジスタ、及びハードワイヤーのうち少なくとも１つを含んでもよい。一実施形態によれば、通信チャネルは複数の分離された通信チャネルまたは第１ライン及び第２ラインのような通信ラインを含んでもよい。通信チャネルのそれぞれの第１ライン及び第２ラインは、バッファ、共有メモリ、レジスタまたはハードワイヤーのうちのいずれか１つであってもよい。
【０１７２】
例えば、プログラム制御部で演算処理情報を通信チャネルに格納した場合、演算処理部は、通信チャネルをモニタリングして演算処理情報が格納されることを確認することができる。そして、演算処理部は、アプリケーション演算に必要な全ての演算パラメータが通信チャネルに格納されたか否かを確認する。
【０１７３】
これによって、ステップＳ１１０５において演算処理部は、通信チャネルから演算処理情報を読み出してアプリケーション演算を処理する。
【０１７４】
一例として、プログラム制御部でアプリケーションコードを実行してアプリケーション演算の処理の準備だけ行った場合、演算処理部は、演算処理情報を用いてアプリケーション演算を１００％処理することができる。
【０１７５】
他の例として、プログラム制御部でアプリケーション演算の一部の演算を処理した場合、演算処理部は、演算処理情報を用いて一部の演算を除いた演算を処理する。
【０１７６】
そして、演算処理部は、アプリケーション演算を処理した結果をレジスタファイル、メモリのうち少なくとも１つに格納する。ここで、演算処理部は、必要に応じてアプリケーション演算を処理した結果を通信チャネルを用いてプログラム制御部にフィードバックしてもよい。
【０１７７】
図１２は、一実施形態に係る優先演算処理が設定されたアプリケーション演算を処理する方法を示すフローチャートである。図１２に示す演算処理方法は図２に示す演算処理装置によって行われ、演算処理装置はプログラム制御部及び演算処理部を備える。図１２に示すように、ステップＳ１２０１においてプログラム制御部は、アプリケーションコードを実行する。
【０１７８】
ここで、アプリケーション演算に優先演算処理が設定されていない場合（Ｓ１２０２：いいえ）、ステップＳ１２０３において、プログラム制御部は、優先演算処理が設定されていないアプリケーション演算の演算処理情報１を通信チャネルに一時的に格納する。例えば、プログラム制御部は、フォワードＦＩＦＯバッファに演算処理情報１を一時的に格納してもよい。
【０１７９】
そして、アプリケーション演算に優先演算処理が設定された場合（Ｓ１２０２：はい）、ステップＳ１２０４においてプログラム制御部は、優先演算処理が設定されたアプリケーション演算の演算処理情報２を通信チャネルに一時的に格納する。
【０１８０】
例えば、プログラム制御部は、フォワードクイックＦＩＦＯバッファに演算処理情報２を一時的に格納してもよい。ここで、フォワードクイックＦＩＦＯバッファは、フォワードＦＩＦＯバッファに格納された演算処理情報よりも優先的に処理を要求する演算を格納するために用いられる。
【０１８１】
ここで、プログラム制御部と演算処理部はアプリケーションを実行するために必要なアプリケーション演算のうち、優先演算処理が設定されたアプリケーション演算を予め約束してもよい。
【０１８２】
ここで、予め約束していない場合、プログラム制御部は、演算処理情報と共に優先演算フラグを通信チャネルに一時的に格納する。
【０１８３】
例えば、優先演算処理が必要なアプリケーション演算の演算処理情報２と優先演算処理が必要ではないアプリケーション演算の演算処理情報１が全てフォワードＦＩＦＯバッファを用いる場合、プログラム制御部は、優先演算フラグを演算処理情報２と共にフォワードＦＩＦＯバッファに格納する。ここで、プログラム制御部は、現在のアプリケーション演算の処理結果を直ちに確認しなければならない場合、現在のアプリケーション演算が優先演算処理が必要な演算であることを判断する。
【０１８４】
次に、ステップＳ１２０５において演算処理部は、通信チャネルをモニタリングして通信チャネルに演算処理情報が格納されたか否かを確認する。
【０１８５】
例えば、演算処理部は、フォワードＦＩＦＯバッファ及びフォワードクイックＦＩＦＯバッファをモニタリングして演算処理情報が格納されたか否かを確認してもよい。ここで、演算処理部は、通信チャネルのフォワードＦＩＦＯバッファまたはフォワードクイックＦＩＦＯバッファにアプリケーション演算に必要な全ての演算パラメータが格納されたか否かを確認する。
【０１８６】
そして、演算処理情報２が格納されることを確認した場合、ステップＳ１２０６において演算処理部は、通信チャネルから演算処理情報２を読み出して優先演算処理が設定されたアプリケーション演算を処理する。
【０１８７】
例えば、演算処理部が演算処理情報１はフォワードＦＩＦＯバッファに格納され、演算処理情報２はフォワードクイックＦＩＦＯバッファに格納されることを確認した場合、演算処理部は演算処理情報２に該当するアプリケーション演算を演算処理情報１に該当するアプリケーション演算よりも優先的に処理してもよい。
【０１８８】
ここで、プログラム制御部が優先演算処理が設定されたアプリケーション演算の処理結果であるフィードバック情報を必要とすることを演算処理部と予め約束した場合、演算処理部は、フィードバック情報を通信チャネルに一時的に格納する。
【０１８９】
例えば、演算処理部は、バックワードＦＩＦＯバッファ及びバックワードクイックＦＩＦＯバッファのうち少なくとも１つにフィードバック情報を格納する。これによって、プログラム制御部は、通信チャネルからフィードバック情報を読み出して次のアプリケーション演算処理に必要な演算処理情報を通信チャネルに格納する。
【０１９０】
次に、ステップＳ１２０７において演算処理部は、通信チャネルから演算処理情報１を読み出してアプリケーション演算を処理する。
【０１９１】
例えば、優先演算処理が設定されたアプリケーション演算の処理が完了すると、演算処理部は、優先演算処理が設定されていないアプリケーションの演算を処理する。
【０１９２】
図１３は、一実施形態に係るフィードバック情報のフィードバック必要性を判断する方法を説明するために提供されるフローチャートである。図１３に示すフィードバック必要性を判断する方法は、図２に示す演算処理装置によって行われ、演算処理装置はプログラム制御部及び演算処理部を備える。図１３に示すように、ステップＳ１３０１においてプログラム制御部は、アプリケーションコードを実行する。
【０１９３】
そして、ステップＳ１３０２においてプログラム制御部は、第１アプリケーション演算に必要な演算処理情報１を通信チャネルに一時的に格納する。
【０１９４】
ここで、演算処理部で第１アプリケーション演算を処理した結果であるフィードバック情報が必要な場合、ステップＳ１３０３においてプログラム制御部は、フィードバックフラグを演算処理情報と共に通信チャネルに一時的に格納する。例えば、プログラム制御部は、フォワードＦＩＦＯバッファ及びフォワードクイックＦＩＦＯバッファのうち少なくとも１つに演算処理情報１とフィードバックフラグを格納してもよい。
【０１９５】
一例として、第２アプリケーション演算を処理するために第１アプリケーション演算のフィードバック情報が必要な場合、プログラム制御部は、演算処理情報１と共にフィードバックフラグを通信チャネルに一時的に格納してもよい。ここで、プログラム制御部と演算処理部がアプリケーションを駆動するときフィードバック情報を必要とするアプリケーション演算を予め約束した場合、プログラム制御部はフィードバックフラグを通信チャネルに格納しなくてもよい。
【０１９６】
次に、ステップＳ１３０４において、演算処理情報１とフィードバックフラグを通信チャネルに格納した後、プログラム制御部は第２アプリケーションコードを実行する。
【０１９７】
そして、プログラム制御部は、第２アプリケーション演算に必要な演算処理情報２を通信チャネルに一時的に格納する。言い換えれば、プログラム制御部は、演算処理部で第１アプリケーション演算の処理を完了するまで待機することなく、第２アプリケーションコードを実行して演算処理情報２を通信チャネルに一時的に格納する。
【０１９８】
そして、ステップＳ１３０５において演算処理部は、通信チャネルをモニタリングして通信チャネルに演算処理情報が格納されたか否かを確認する。
【０１９９】
ここで、演算処理部は、通信チャネルをモニタリングしてフィードバックフラグが通信チャネルに格納されることを確認する。これによって、演算処理部は、フィードバックフラグに基づいてアプリケーション演算のフィードバック情報がプログラム制御部で必要であることを判断する。
【０２００】
次に、ステップＳ１３０６において演算処理部は、通信チャネルから演算処理情報１を読み出して第１アプリケーション演算を処理する。
【０２０１】
そして、ステップＳ１３０７において演算処理部は、第１アプリケーション演算を処理した結果であるフィードバック情報を通信チャネルに一時的に格納する。次に、演算処理部は、演算処理情報２を用いて第２アプリケーション演算を処理する。
【０２０２】
ここで、第１アプリケーション演算のフィードバック情報が通信チャネルに格納された場合、ステップＳ１３０８においてプログラム制御部は、通信チャネルからフィードバック情報を読み出して第３アプリケーション演算に必要な演算処理情報３を生成する。そして、プログラム制御部は、生成された演算処理情報３を通信チャネルに一時的に格納する。
【０２０３】
例えば、プログラム制御部は、第１アプリケーション演算のフィードバック情報を用いて第３アプリケーション演算に必要な演算処理情報３を通信チャネルに格納してもよい。これによって、ステップＳ１３０９において演算処理部は、演算処理情報３を用いて第３アプリケーション演算を処理する。
【０２０４】
以上の図１２及び図１３における通信チャネルではＦＩＦＯバッファを用いるものと説明したが、本発明はこの例示的な実施形態に限定されない。通信チャネルでは共有メモリ、レジスタ、ハードワイヤーのうち少なくとも１つが用いられてもよい。
【０２０５】
実施形態に係る方法は、多様なコンピュータ手段によって行うことができるプログラム命令の形態で実現されてもよく、かかるプログラム命令は、コンピュータ読み出し可能媒体に記録されてもよい。前記コンピュータ読み出し可能媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせたものを含んでもよい。前記媒体に記録されるプログラム命令は、本発明のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。
【０２０６】
以上のように本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような記載から多様な修正及び変形が可能である。
【０２０７】
したがって、本発明の範囲は、説明された実施形態に限定されて定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【０２０８】
１０１、２０１、３０１、４０１、５０１、６０１、７０１、１００１  プログラム制御部
１０２、２０４、３０３、４０３、５０３、６０３、７０３、１００３  通信チャネル
１０３、２０５、３０２、４０２、５０２、６０２、７０２、１００２  演算処理部
２０２、２０６  レジスタファイル
２０３、２０７、２０８  メモリ
【図１】
2014021987.tif 000003
【図２】
2014021987.tif 000004
【図３】
2014021987.tif 000005
【図４】
2014021987.tif 000006
【図５】
2014021987.tif 000007
【図６】
2014021987.tif 000008
【図７】
2014021987.tif 000009
【図８】
2014021987.tif 000010
【図９】
2014021987.tif 000011
【図１０】
2014021987.tif 000012
【図１１】
2014021987.tif 000013
【図１２】
2014021987.tif 000014
【図１３】
2014021987.tif 000015