JP6433645B2 - アプリケーションを高速に処理する演算処理装置及び方法 - Google Patents

アプリケーションを高速に処理する演算処理装置及び方法 Download PDF

Info

Publication number
JP6433645B2
JP6433645B2 JP2013148332A JP2013148332A JP6433645B2 JP 6433645 B2 JP6433645 B2 JP 6433645B2 JP 2013148332 A JP2013148332 A JP 2013148332A JP 2013148332 A JP2013148332 A JP 2013148332A JP 6433645 B2 JP6433645 B2 JP 6433645B2
Authority
JP
Japan
Prior art keywords
calculation
application
arithmetic processing
program control
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013148332A
Other languages
English (en)
Other versions
JP2014021987A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014021987A publication Critical patent/JP2014021987A/ja
Application granted granted Critical
Publication of JP6433645B2 publication Critical patent/JP6433645B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

下記の説明はアプリケーションを高速に処理する演算処理装置及び方法に関する。
高性能プロセッサ、DSP(Digital Signal Processor)、GPU(Graphic Processing Unit)などの処理装置は、アルゴリズム演算を高速に処理する特定の演算装置を用いて演算処理を加速化する。例えば、特定の演算装置は、SIMD(Single Instruction Multiple Data)及びMIMD(Multiple Data)、ハードウェア加速器などを含んでもよい。ここで、SIMDは1つの命令語で数個のデータを処理する並列コンピュータ技術であり、MIMDは複数の命令語で数個のデータを処理する並列コンピュータ技術である。
このように、SIMD、MIMDなどを用いる場合、プログラム制御装置と特定の演算装置が交互に実行され、アプリケーション演算を処理する。
これによって、プログラム制御装置は、特定の演算装置で演算を処理する間に遊休状態のままとなり、アプリケーションの実行に遅延が発生することがある。同様に、特定の演算装置は、プログラム制御装置でアプリケーション演算またはアプリケーションコードを実行する間に遊休状態のままとなり、アプリケーションの実行に遅延が発生することがある。
そして、プログラム制御装置と特定の演算装置が遊休状態である間にハードウェアが浪費されてその効率が落ちることがある。
本発明の目的は、アプリケーションの駆動に必要なアプリケーションコードとアプリケーション演算を並列処理することによって、アプリケーションを迅速に実行することのできる演算処理方法を提供する。
一実施形態に係る演算処理装置は、アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するプログラム制御部と、前記通信チャネルに格納された演算処理情報を用いて前記アプリケーション演算を処理する演算処理部とを備える。
一実施形態に係る演算処理方法は、演算処理装置のプログラム制御部が、アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するステップと、前記演算処理装置の演算処理部が、前記通信チャネルに格納された演算処理情報を用いてアプリケーション演算を処理するステップとを含む。
一実施形態によれば、アプリケーションを駆動するために必要なアプリケーションコードとアプリケーション演算を並列処理することができ、アプリケーションを迅速に実行する演算処理方法を提供することができる。
一実施形態に係る演算処理装置が通信チャネルを用いて並列にアプリケーション演算を処理する動作を説明する図である。 一実施形態に係る演算処理装置の全般的な構成を示す図である。 一実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。 他の実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。 更なる実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。 更なる実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。 図2から図6に示す演算処理部がフィードバックフラグを用いてフィードバック情報の必要性を判断する動作を説明するための図である。 一実施形態に係るプログラム制御部がアプリケーションコードを実行し、演算処理部がアプリケーション演算を処理する動作を説明するための図である。 一実施形態に係る演算処理装置でアプリケーションの実行を加速化する動作を説明するための図である。 一実施形態に係る演算処理装置が1つ以上のプログラム制御部を含む構成を示す図である。 一実施形態に係る演算処理方法を示すフローチャートである。 一実施形態に係る優先演算処理が設定されたアプリケーション演算を処理する方法を示すフローチャートである。 一実施形態に係るフィードバック情報のフィードバック必要性を判断する方法を説明するために提供されるフローチャートである。
以下、実施形態を添付する図面を参照しながら詳細に説明する。一実施形態に係る演算処理方法は演算処理装置によって行われてもよい。各図面に提示された同一の参照符号は同一の部材を示す。
図1は、一実施形態に係る演算処理装置が通信チャネルを用いて並列にアプリケーション演算を処理する動作を説明するために示す図である。図1に示すように、演算処理装置100は、例えば、プログラム制御部101、通信チャネル102、及び演算処理部103を備える。
プログラム制御部101はアプリケーションコードを実行してもよい。アプリケーションコードを実行する間、プログラム制御部101は、アプリケーション演算に必要な演算処理情報を通信チャネル102に一時的に格納する。ここで、演算処理情報は、アプリケーション演算の処理に必要なデータ、データが格納されたメモリのアドレス、及び演算パラメータのうち少なくとも1つを含んでもよい。
このように、演算処理情報を通信チャネル102に格納した後、プログラム制御部101は、演算処理部103の演算処理結果を待機せず直ちに次のアプリケーション演算を処理する。
例えば、プログラム制御部101は、第1アプリケーションコードを実行することにより生じる第1アプリケーション演算に必要な演算処理情報を通信チャネル102に一時的に格納する。次に、プログラム制御部101は、演算処理部103で第1アプリケーション演算の処理を完了するまで待機せず、直ちに第2アプリケーションコードを実行することにより生じる第2アプリケーション演算に必要な演算処理情報を通信チャネル102に一時的に格納する。
このように、プログラム制御部101は、演算処理部103で第1アプリケーション演算の処理を完了する前に、直ちに第2アプリケーション演算を処理して演算処理部103による遅延を減少させることができる。このような遅延の減少によってアプリケーションの実行時間が速くなる。
そして、プログラム制御部101は、通信チャネル102のオーバーフローの存在有無に基づいて演算処理情報を通信チャネル102に一時的に格納する。
例えば、通信チャネル102が一時的に格納された演算処理情報で一杯になり、通信チャネル102がオーバーフローした場合、プログラム制御部101は、通信チャネル102の格納空間が確保されるまで待機する。ここで、プログラム制御部101は、次のアプリケーション演算に必要な演算処理情報を格納するのに十分大きな格納空間が通信チャネル102に確保されるまで待機する。
一実施形態によれば、通信チャネル102は、複数の分離された通信チャネルまたは第1ライン及び第2ラインのような通信ラインを含んでもよい。通信チャネル102の第1ラインは、プログラム制御部101から演算処理部103に情報を送信してもよい。通信チャネル102の第2ラインは、演算処理部103からプログラム制御部101に情報を送信してもよい。第1ライン及び第2ラインのそれぞれは、バッファ、共有メモリ、レジスタまたはハードワイヤーなどのいずれであっても良い。通信チャネル102は、プログラム制御部101と演算処理部103との間に全二重通信を提供する。
以上で説明したように、プログラム制御部101と演算処理部103は互いに分担してアプリケーション演算を処理する。ここで、プログラム制御部101は、プログラム制御部101の演算処理の速度、通信チャネル102の格納容量、演算処理部103の演算処理速度のうち少なくとも1つに基づいてプログラム制御部101で処理する一部の演算量と演算処理部103で処理する一部の演算を除いた演算量を決定してもよい。
言い換えれば、プログラム制御部101は、前記決定に基づいてアプリケーション演算に必要な演算全体のうち一部の演算を処理し、処理された一部の演算に対応する演算処理情報を通信チャネル102に一時的に格納する。これによって、演算処理部103は、通信チャネル102から演算処理情報を読み出して一部の演算を除いた演算を処理することができる。
例えば、プログラム制御部101はアプリケーション演算の演算全体100%のうちa%の演算を処理する。そして、プログラム制御部101は、a%処理された演算の処理結果に対応する演算パラメータを含む演算処理情報を通信チャネル102に一時的に格納する。すると、演算処理部103は、通信チャネル102から演算処理情報を読み出して、残りの(100−a)%の演算を処理する。これによって、アプリケーション演算の処理が完了される。
また、プログラム制御部101は、アプリケーションコードを実行してもよい。一実施形態では、演算処理部103が、アプリケーション演算を処理するための準備作業として演算処理情報を生成し、演算処理部103がアプリケーション演算を処理してもよい。言い換えれば、プログラム制御部101はアプリケーション演算を処理せず、演算処理部103がアプリケーション演算に必要な演算全体を処理することができる。
図2は、一実施形態に係る演算処理装置の全般的な構成を示す図である。特に、図2は、演算処理装置200に含まれるプログラム制御部201と演算処理部205を並列駆動するためのDSP(Digital Signal Processor)の構成要素を示す図である。
図2に示すように、演算処理装置200は、プログラム制御部201、第1レジスタファイル202、第1メモリ203、通信チャネル204、演算処理部205、第2レジスタファイル206、第2メモリ207、及び第3メモリ208を備える。
まず、プログラム制御部201は、アプリケーションを駆動するためにアプリケーションコードを実行してもよい。ここで、プログラム制御部201は、アプリケーションコードを実行することによりアプリケーション演算に必要な演算処理情報を通信チャネル204に一時的に格納する。
一例として、プログラム制御部201は、アプリケーション演算に必要な全体演算のうち一部の演算を処理する。そして、プログラム制御部201は、処理された一部の演算に対応する演算パラメータを含む演算処理情報を通信チャネル204に一時的に格納する。例えば、プログラム制御部201で一部の演算を処理した場合、通信チャネル204に格納された演算パラメータは、処理された一部の演算の処理結果を含んでもよい。
通信チャネル204は、複数の分離された通信チャネルまたは第1ライン及び第2ラインのような通信ラインを含んでもよい。通信チャネル204の第1ラインは、プログラム制御部201から演算処理部205に情報を送信してもよい。通信チャネル204の第2ラインは、演算処理部205からプログラム制御部201に情報を送信してもよい。例えば、通信チャネル204のそれぞれの第1ライン及び第2ラインは、バッファ、共有メモリ、レジスタまたはハードワイヤーのいずれか1つであってもよい。通信チャネル204は、プログラム制御部201と演算処理部205との間に全二重通信を提供してもよい。
すると、演算処理部205は、通信チャネル204から演算処理情報を読み出して一部の演算を除いた演算を処理する。
ここで、アプリケーションコードはアプリケーションを駆動するために演算処理を指示する命令語であり、アプリケーション演算はアプリケーションコードが実行されることによってアプリケーションを駆動するために必要な演算であってもよい。例えば、アプリケーションコードは、条件付き分岐命令、関数呼び出し、及び分岐命令などを含んでもよい。
そして、演算処理情報は、アプリケーション演算処理に必要なデータ、データが格納されたメモリのアドレス、及び演算パラメータのうち少なくとも1つを含んでもよい。
他の例として、プログラム制御部201はアプリケーションコードを実行し、演算処理部205でアプリケーション演算を処理するための準備作業として演算パラメータを含む演算処理情報を生成する。例えば、準備作業のために用いられる演算パラメータは、演算処理部205で処理されるアプリケーション演算で呼び出される関数情報、インデックス情報などを含んでもよい。
これによって、演算処理部205は、演算処理情報を用いてアプリケーション演算の演算全体を処理することができる。
第1レジスタファイル202及び第1メモリ203は、アプリケーション演算処理に必要なデータ及びプログラム制御部201で処理したアプリケーション演算の処理結果である演算パラメータを格納する。
通信チャネル204は、プログラム制御部201で生成した演算処理情報及び演算処理部205で生成したフィードバック情報を一時的に格納する格納媒体であってもよい。ここで、通信チャネル204は1つ以上の格納媒体を含んでもよい。
例えば、通信チャネル204は、バッファ、共有メモリ、レジスタ、及びハードワイヤーの少なくとも1つを含んでもよい。
これによって、演算処理部205は、通信チャネル204に格納された演算処理情報を用いてアプリケーション演算を処理する。
例えば、演算処理部205は処理しようとするアプリケーション演算に必要な全ての演算パラメータが通信チャネル204に格納されたかを確認してもよい。通信チャネル204に全ての演算パラメータが格納された場合、演算処理部205は、演算パラメータを用いてアプリケーション演算の処理を完了する。
次に、演算処理部205は、アプリケーション演算を処理した結果に対応するフィードバック情報を第2レジスタファイル206、第2メモリ207、及び第3メモリ208のうち少なくとも1つに格納する。そして、第2レジスタファイル206、第2メモリ207、及び第3メモリ208は、演算処理部205で用いられるデータを格納する。
ここで、演算処理部205は、必要に応じてフィードバック情報を通信チャネル204に格納する。例えば、プログラム制御部201でフィードバック情報を必要とする場合、演算処理部205はフィードバック情報を通信チャネル204に格納してもよい。
一例として、第2アプリケーション演算のために第1アプリケーション演算の処理結果であるフィードバック情報が必要なことがある。
これによって、プログラム制御部201は、第1アプリケーション演算のフィードバック情報が必要であることを演算処理部205と予め約束してもよい。このように、予め約束された場合、演算処理部205は第1アプリケーション演算の処理を完了し、フィードバック情報を通信チャネル204に一時的に格納する。これによって、プログラム制御部201は、通信チャネル204に格納されたフィードバック情報を用いて第2アプリケーション演算を処理する。
他の例として、予め約束されていない場合、演算処理部205は、プログラム制御部201で第1アプリケーション演算のフィードバック情報を必要とするか否かを示す必要性を判断する。
そして、演算処理部205は、判断の結果に基づいてフィードバック情報を通信チャネル204に格納する。例えば、通信チャネル204に第1アプリケーション演算のための演算パラメータと共にフィードバックフラグが格納されている場合、演算処理部205は、プログラム制御部201がフィードバック情報を必要とすると判断してフィードバック情報を通信チャネル204に一時的に格納する。
図2において、プログラム制御部201と演算処理部205は、第1レジスタファイル202、第1メモリ203、第2レジスタファイル206、第2メモリ207、及び第3メモリ208を共有してもよい。ここで、第1メモリ203、第2メモリ207及び第3メモリ208は、命令キャッシュ、データキャッシュ、及びスクラッチパッドメモリなどを含んでもよい。
そして、例示的な実施形態では、プログラム制御部201は、1つのレジスタファイル及びメモリを用いるものと説明したが、本発明はこのような例示的な実施形態に限定されない。つまり、プログラム制御部201は1つ以上のレジスタファイルと1つ以上のメモリを用いてもよい。同様に、例示的な実施形態では、演算処理部205は、1つのレジスタファイルと2つのメモリを用いるものと説明したが、本発明はこのような例示的な実施形態に限定されない。つまり、演算処理部205は1つ以上のレジスタファイルと1つ以上のメモリを用いてもよい。
図3は、一実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。図3に示すように、通信チャネル303は、第1バッファ304及び第2バッファ305を備える。例えば、第1バッファ304はフォワードFIFO(First In First Out)バッファを含み、第2バッファ305はバックワードFIFOバッファを含んでもよい。
まず、プログラム制御部301は、アプリケーションコードを実行することにより生じる第1から第Nアプリケーション演算に必要な演算処理情報を通信チャネル303に格納する。
一例として、N=5であり、プログラム制御部301が第4アプリケーション演算のフィードバック情報を必要とすることを演算処理部302と予め約束した場合、プログラム制御部301は、第1アプリケーション演算に必要な演算処理情報1を第1バッファ304に一時的に格納する。これによって、演算処理部302は、第1バッファ304に格納された演算処理情報1を読み出して第1アプリケーション演算を処理する。これにより、演算処理情報1は第1バッファ304で空になる。
次に、演算処理部302で第1バッファ304に格納された演算処理情報1を用いて第1アプリケーション演算の処理を完了する前に、プログラム制御部301は、第2アプリケーション演算に必要な演算処理情報2を第1バッファ304に一時的に格納する。
ここで、演算処理部302で第1アプリケーション演算の処理が完了していない場合、プログラム制御部301は、第3アプリケーション演算に必要な演算処理情報3を第1バッファ304に格納する。これによって、第1バッファ304は、演算処理情報2と演算処理情報3を格納していることができる。
そして、プログラム制御部301は、第4アプリケーション演算に必要な演算処理情報4を第1バッファ304に一時的に格納する。ここで、演算処理部302で第1及び第2アプリケーション演算の処理を完了し、第3アプリケーション演算を処理中である場合、プログラム制御部301は第4アプリケーション演算のフィードバック情報を待機してもよい。
次に、演算処理部302で第3アプリケーション演算の処理を完了した場合、演算処理部302は、演算処理情報4を用いて第4アプリケーション演算の処理を完了する。
そして、演算処理部302は、第4アプリケーション演算のフィードバック情報を第2バッファ305に一時的に格納する。これによって、プログラム制御部301は、第2バッファ305に格納された第4アプリケーション演算のフィードバック情報を用いて第5アプリケーション演算を処理する。このように、プログラム制御部301は、通信チャネル303を用いて演算処理部302と連動することで、フィードバック情報が必要な場合を除いて演算処理部302の演算処理結果を待機することなく、複数のアプリケーション演算を直ちに並列処理することができる。
他の例として、N=5であり、プログラム制御部301が第4アプリケーション演算のフィードバック情報を必要とすることを演算処理部302と予め約束していない場合、演算処理部302は第1バッファ304を確認して処理しようとするアプリケーション演算のフィードバック情報をプログラム制御部301が必要とするか否かを判断する。
ここで、プログラム制御部301が演算処理情報1から3を第1バッファ304に格納し、演算処理部302が第1バッファ304に格納された演算処理情報1から3を読み出して第1から第3アプリケーション演算の処理を完了する動作は、フィードバック情報の必要性を予め約束した場合と同一であるため、重複する説明は省略する。
例えば、プログラム制御部301は、第4アプリケーション演算に必要な演算処理情報4を第1バッファ304に一時的に格納する。ここで、プログラム制御部301は、第4アプリケーション演算のフィードバック情報が必要であることを示すフィードバックフラグを第1バッファ304に一時的に格納する。これによって、演算処理部302は、第1バッファ304に格納されたフィードバックフラグに基づいて第4アプリケーション演算のフィードバック情報をプログラム制御部301で必要とするものとして判断する。
次に、演算処理部302は、第1バッファ304に格納された演算処理情報4を読み出して第4アプリケーション演算の処理を完了する。そして、演算処理部302は、第4アプリケーション演算のフィードバック情報を第2バッファ305に一時的に格納する。これによって、プログラム制御部301は、第2バッファ305に格納された第4アプリケーション演算のフィードバック情報を用いて第5アプリケーション演算を処理する。
図4は、他の実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。特に、図4は、通信チャネルが演算処理情報を格納する2つのバッファとフィードバック情報を格納する1つのバッファを含む実施形態を示す図である。
図4に示すように、通信チャネル403は、第1バッファ404、第2バッファ405、及び第3バッファ406を備える。例えば、第1バッファ404はフォワードFIFOバッファを含み、第2バッファ405はバックワードFIFOバッファを含み、第3バッファ406はフォワードクイック(Forward Quick)FIFOを含んでもよい。
まず、プログラム制御部401は、アプリケーションコードを実行することにより生じる第1から第Nアプリケーション演算に必要な演算処理情報を通信チャネル403に格納する。
一例として、N=5であり、プログラム制御部401が第4アプリケーション演算のフィードバック情報を必要とし、第4アプリケーション演算に優先演算処理が設定されたことを演算処理部402と予め約束した場合、プログラム制御部401は、第1アプリケーション演算に必要な演算処理情報1を第1バッファ404に一時的に格納する。ここで、優先演算処理は、プログラム制御部401が第5アプリケーション演算を処理するために第4アプリケーション演算のフィードバック情報を直ちに確認する必要がある場合に予め設定されてもよい。
ここで、プログラム制御部401は、第1アプリケーション演算に必要な演算処理情報1を第1バッファ404に一時的に格納する。これによって、演算処理部402は、第1バッファ404に格納された演算処理情報1を読み出して第1アプリケーション演算を処理する。これによって、演算処理情報1は第1バッファ404で空になる。
次に、演算処理部402で第1バッファ404に格納された演算処理情報1を用いて第1アプリケーション演算の処理を完了する前に、プログラム制御部401は、第2アプリケーション演算に必要な演算処理情報2を第1バッファ404に一時的に格納する。
ここで、演算処理部402で第1アプリケーション演算の処理が完了していない場合、プログラム制御部401は、第3アプリケーション演算に必要な演算処理情報3を第1バッファ404に格納する。これによって、第1バッファ404は、演算処理情報2と演算処理情報3を格納していることができる。
そして、プログラム制御部401は、優先演算処理が設定された第4アプリケーション演算に必要な演算処理情報4を第3バッファ406に一時的に格納する。ここで、演算処理部402は、順次第1及び第2アプリケーション演算の処理を完了した状態で第3アプリケーション演算を処理するために第1バッファ404及び第3バッファ406を確認する。これによって、演算処理部402は第1バッファ404に演算処理情報3が格納され、第3バッファ406に演算処理情報4が格納されていることを確認する。
ここで、第3バッファ406は、優先演算処理が設定されたアプリケーション演算に必要な演算処理情報が格納されるバッファであるため、演算処理部402は、第3バッファ406から演算処理情報4を読み出して第4アプリケーション演算を処理する。そして、演算処理部402は、第4アプリケーション演算のフィードバック情報を第2バッファ405に一時的に格納する。次に、演算処理部402は、第1バッファ404から演算処理情報3を読み出して第3アプリケーション演算を処理する。
これによって、プログラム制御部401は、第2バッファ405から第4アプリケーション演算のフィードバック情報を読み出して第5アプリケーション演算に必要な演算処理情報5を第1バッファ404に一時的に格納する。これによって、演算処理部402は、第1バッファ404から演算処理情報5を読み出して第5アプリケーション演算の処理を完了する。
このように、演算処理部402は、第3バッファ406を用いて優先演算処理が設定されたアプリケーション演算を優先的に処理してフィードバック情報を迅速にプログラム制御部401に提供することができる。これによって、プログラム制御部401は、次のアプリケーション演算のために以前アプリケーション演算のフィードバック情報を待機する時間を短縮することができる。
他の例として、N=5であり、プログラム制御部401が第4アプリケーション演算のフィードバック情報を必要とすることを演算処理部402と予め約束していない場合、演算処理部402は、第1バッファ404及び第3バッファ406を確認して処理しようとするアプリケーション演算のフィードバック情報をプログラム制御部401が必要とするか否かを判断する。ここで、第4アプリケーション演算に優先演算処理が設定されるものと仮定する。
ここで、プログラム制御部401が演算処理情報1から3を第1バッファ404に格納し、演算処理部402が第1バッファ404に格納された演算処理情報1から3を読み出して第1から第3アプリケーション演算の処理を完了する動作は、図4でフィードバック情報の必要性を予め約束した場合と同一であるため、重複する説明は省略する。
例えば、プログラム制御部401は、第4アプリケーション演算に必要な演算処理情報4を第3バッファ406に一時的に格納する。ここで、プログラム制御部401は、第4アプリケーション演算のフィードバック情報が必要であることを示すフィードバックフラグを第3バッファ406に一時的に格納する。これによって、演算処理部402は、第3バッファ406に格納されたフィードバックフラグに基づいて第4アプリケーション演算のフィードバック情報をプログラム制御部401で必要とするものと判断する。
次に、演算処理部402は、第3バッファ406に格納された演算処理情報4を読み出して第4アプリケーション演算の処理を完了する。そして、演算処理部402は、第4アプリケーション演算のフィードバック情報を第2バッファ405に一時的に格納する。これによって、プログラム制御部401は、第2バッファ405に格納された第4アプリケーション演算のフィードバック情報を用いて第5アプリケーション演算を処理する。
以上の図4を参照して説明したように、アプリケーション演算のフィードバック情報を直ちに確認する必要がある場合、プログラム制御部401は優先演算処理が設定されたアプリケーション演算の演算処理情報を第3バッファ406に一時的に格納する。そして、アプリケーション演算のフィードバック情報を直ちに確認する必要がない場合、プログラム制御部401はアプリケーション演算の演算処理情報を第1バッファ404に一時的に格納する。
図5は、更なる実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。特に、図5は、通信チャネルが演算処理情報を格納する1つのバッファとフィードバック情報を格納する2つのバッファを含む実施形態を示す図である。
図5に示すように、通信チャネル503は、第1バッファ504、第2バッファ505、及び第3バッファ506を含んでもよい。例えば、第1バッファ504はフォワードFIFO(First In First Out)バッファを含み、第2バッファ505はバックワードFIFOバッファを含み、第3バッファ506はバックワードクイック(Backward Quick)FIFOを含んでもよい。
まず、プログラム制御部501は、アプリケーションコードを実行することにより生じる第1から第Nアプリケーション演算に必要な演算処理情報を通信チャネル503に格納する。
一例として、N=5であり、プログラム制御部501が第2及び第4アプリケーション演算のフィードバック情報を必要とし、第4アプリケーション演算に優先演算処理が設定されたことを演算処理部502と予め約束した場合、プログラム制御部501は、第1アプリケーション演算に必要な演算処理情報1を第1バッファ504に一時的に格納する。ここで、プログラム制御部501が第2及び第4アプリケーション演算のフィードバック情報を用いて第5アプリケーション演算を処理することを仮定する。
プログラム制御部501は、第1アプリケーション演算に必要な演算処理情報1を第1バッファ504に一時的に格納する。これによって、演算処理部502は、第1バッファ504に格納された演算処理情報1を読み出して第1アプリケーション演算を処理する。これによって、演算処理情報1は第1バッファ504で空になる。
次に、演算処理部502で第1バッファ504に格納された演算処理情報1を用いて第1アプリケーション演算の処理を完了する前に、プログラム制御部501は、第2アプリケーション演算に必要な演算処理情報2を第1バッファ504に一時的に格納する。そして、プログラム制御部501は、第3アプリケーション演算に必要な演算処理情報3と第4アプリケーション演算に必要な演算処理情報4を第1バッファ504に一時的に格納する。
これによって、演算処理部502は、第2から第3アプリケーション演算を順次処理完了してもよい。そして、演算処理部502は、第2アプリケーション演算のフィードバック情報を第2バッファ505に一時的に格納する。
次に、演算処理部502は第4アプリケーション演算の処理を完了し、第4アプリケーション演算のフィードバック情報を第3バッファ506に一時的に格納する。これによって、プログラム制御部501は、第2バッファ505から第2アプリケーション演算のフィードバック情報を読み出し、第3バッファ506から第4アプリケーション演算のフィードバック情報を読み出して第5アプリケーション演算に必要な演算処理情報5を生成する。
そして、プログラム制御部501は、演算処理情報5を第1バッファ504に一時的に格納する。これによって、演算処理部502は、演算処理情報5を用いて第5アプリケーションの演算処理を完了する。
他の例として、N=5であり、プログラム制御部501が第2及び第4アプリケーション演算のフィードバック情報を必要とすることを演算処理部502と予め約束していない場合、演算処理部502は、第1バッファ504を確認して処理しようとするアプリケーション演算のフィードバック情報をプログラム制御部501が必要とするか否かを判断する。
ここで、プログラム制御部501が第2及び第4アプリケーション演算のフィードバック情報を用いて第5アプリケーション演算を処理し、第4アプリケーション演算に優先演算処理が設定されたことを仮定する。
ここで、プログラム制御部501が演算処理情報1から4を第1バッファ504に順次格納し、演算処理部502が第1バッファ504に格納された演算処理情報1から4を読み出して第1から第4アプリケーション演算の処理を完了する動作は、図5を参照してフィードバック情報の必要性を予め約束した場合と同一であるため、重複する説明は省略する。
例えば、プログラム制御部501は、演算処理情報2と共に第2アプリケーション演算のフィードバックフラグを第1バッファ504に一時的に格納する。これによって、演算処理部502は、第1バッファ504に格納された第2アプリケーション演算のフィードバックフラグに基づいて第2アプリケーション演算のフィードバック情報をプログラム制御部501で必要とするものと判断する。そして、演算処理部502は、第2アプリケーション演算のフィードバック情報を第2バッファ505に一時的に格納する。
同様に、プログラム制御部501は、演算処理情報3と共に第3アプリケーション演算のフィードバックフラグを第1バッファ504に一時的に格納する。これによって、演算処理部502は、第1バッファ504に格納された第4アプリケーション演算のフィードバックフラグに基づいて第4アプリケーション演算のフィードバック情報をプログラム制御部501で必要とするものと判断する。そして、演算処理部502は、第4アプリケーション演算のフィードバック情報を第3バッファ506に一時的に格納する。
これによって、プログラム制御部501は、第2バッファ505及び第3バッファ506から第2及び第3アプリケーション演算のフィードバック情報を読み出し、第5アプリケーション演算に必要な演算処理情報5を生成する。そして、プログラム制御部501は、演算処理情報5を第1バッファ504に格納する。これによって、演算処理部502は演算処理情報5を用いて第5アプリケーション演算の処理を完了する。
図6は、更なる実施形態に係るバッファを用いて演算処理情報及びフィードバック情報を格納する通信チャネルの構成を示す図である。特に、図6は、通信チャネルが演算処理情報を格納する2つのバッファとフィードバック情報を格納する2つのバッファを含む実施形態を示す図である。
図6に示すように、通信チャネル603は、第1バッファ604、第2バッファ605、第3バッファ606、及び第4バッファ607を備える。例えば、第1バッファ604はフォワードFIFO(First In First Out)バッファを含み、第2バッファ605はバックワードFIFOバッファを含み、第3バッファ606はフォワードクイックFIFOバッファを含み、第4バッファ607はバックワードクイックFIFOを含んでもよい。
まず、プログラム制御部601は、アプリケーションコードを実行することにより生じる第1から第Nアプリケーション演算に必要な演算処理情報を通信チャネル603に格納する。ここで、第2から第Nアプリケーション演算は第1アプリケーション演算後に処理される演算であってもよい。
一例として、N=6であり、プログラム制御部601が第2及び第4アプリケーション演算のフィードバック情報を必要とし、第4アプリケーション演算に優先演算処理が設定されたことを演算処理部602と予め約束した場合、プログラム制御部601は、第1アプリケーション演算に必要な演算処理情報1を第1バッファ604に一時的に格納する。ここで、プログラム制御部601が第4アプリケーション演算のフィードバック情報を用いて第5アプリケーション演算を処理し、第2アプリケーション演算のフィードバック情報を用いて第6アプリケーション演算を処理することを仮定する。
具体的に、プログラム制御部601は、第1アプリケーション演算に必要な演算処理情報1を第1バッファ604に一時的に格納する。これによって、演算処理部602は、第1バッファ604に格納された演算処理情報1を読み出して第1アプリケーション演算を処理する。これによって、演算処理情報1は第1バッファ604で空になる。
ここで、演算処理部602で第1バッファ604に格納された演算処理情報1を用いて第1アプリケーション演算の処理を完了する前に、プログラム制御部601は、第2アプリケーション演算に必要な演算処理情報2を第1バッファ604に一時的に格納する。
そして、プログラム制御部601は、第3アプリケーション演算に必要な演算処理情報3を第1バッファ604に一時的に格納する。ここで、演算処理部602で第1アプリケーション演算の処理を完了していない場合、第1バッファ604は、演算処理情報2及び演算処理情報3を順次格納していることができる。
次に、プログラム制御部601は、演算処理情報3を第1バッファ604に格納した後、すなわち、直ちに第4アプリケーション演算に必要な演算処理情報4を第3バッファ606に格納する。これによって、第1バッファ604は演算処理情報2及び演算処理情報3を格納し、第3バッファ606は演算処理情報4を格納していることができる。
ここで、演算処理部602で第1アプリケーション演算の処理を完了した場合、演算処理部602は第1バッファ604及び第3バッファ606を確認する。そして、演算処理部602は、第3バッファ606から演算処理情報4を読み出して優先演算処理が設定された第4アプリケーション演算のフィードバック情報を生成する。次に、演算処理部602は、第4アプリケーション演算のフィードバック情報を第4バッファ607に一時的に格納する。言い換えれば、演算処理部602は、第2及び第3アプリケーション演算よりも第4アプリケーション演算を優先的に処理する。
そして、第4アプリケーション演算のフィードバック情報を第4バッファ607に格納した後、演算処理部602は第1バッファ604から演算処理情報2を読み出して第2アプリケーション演算を処理する。
ここで、プログラム制御部601は、演算処理部602で第2アプリケーション演算を処理する間に第5アプリケーション演算に必要な演算処理情報5の生成を開始する。言い換えれば、プログラム制御部601は、第4バッファ607で第4アプリケーション演算のフィードバック情報を用いて演算処理情報5の生成を開始してもよい。これによって、第4バッファ607は空になる。
ここで、プログラム制御部601で演算処理情報5の生成を完了する前に、演算処理部602は第2アプリケーション演算の処理を完了する。これによって、演算処理部602は第2アプリケーション演算のフィードバック情報を第2バッファ605に一時的に格納する。
そして、演算処理部602は第2アプリケーション演算の処理を完了した後、演算処理部602は第1バッファ604から演算処理情報3を読み出して第3アプリケーション演算を処理する。ここで、プログラム制御部601は、演算処理部602で第3アプリケーション演算を処理する間に演算処理情報5の生成を完了する。これによって、プログラム制御部601は、演算処理情報5を第1バッファ604に一時的に格納する。
次に、演算処理部602は第3アプリケーション演算の処理を完了した後、演算処理部602は、第1バッファ604から演算処理情報5を読み出して第5アプリケーション演算を処理する。
ここで、プログラム制御部601は、演算処理部602で第5アプリケーション演算を処理する間に第6アプリケーション演算に必要な演算処理情報6を生成する。言い換えれば、プログラム制御部601は、第2バッファ605から第2アプリケーションのフィードバック情報を読み出して演算処理情報6を生成する。そして、プログラム制御部601は演算処理情報6を第1バッファ604に一時的に格納する。
これによって、演算処理部602は、演算処理情報6を用いて第6アプリケーション演算の処理を完了する。このように、プログラム制御部601と演算処理部602は、第1から第4バッファを用いて複数のアプリケーション演算を並列処理することで、フィードバック情報を要求するアプリケーション演算の処理時に発生する遅延を減少させることができる。これによって、アプリケーションの実行時間は短縮され得る。
他の例として、N=6であり、プログラム制御部601が第2及び第4アプリケーション演算のフィードバック情報を必要であることを予め約束していない場合、演算処理部602は、第1バッファ604及び第3バッファ606を確認して処理しようとするアプリケーション演算のフィードバック情報をプログラム制御部601が必要とするか否かを判断する。
ここで、プログラム制御部601が第4アプリケーション演算のフィードバック情報を用いて第5アプリケーション演算を処理し、第2アプリケーション演算のフィードバック情報を用いて第6アプリケーション演算を処理し、第4アプリケーション演算に優先演算処理が設定されることを仮定する。
まず、プログラム制御部601は、第1アプリケーション演算に必要な演算処理情報1を第1バッファ604に一時的に格納する。これによって、演算処理部602は、第1バッファ604に格納された演算処理情報1を読み出して第1アプリケーション演算を処理する。これによって、演算処理情報1は第1バッファ604で空になる。
ここで、演算処理部602で第1バッファ604に格納された演算処理情報1を用いて第1アプリケーション演算の処理を完了する前に、プログラム制御部601は、第2アプリケーション演算に必要な演算処理情報2を第1バッファ604に一時的に格納する。ここで、プログラム制御部601は、第2アプリケーション演算のフィードバックフラグを演算処理情報2と共に第1バッファ604に一時的に格納する。
そして、プログラム制御部601は、第3アプリケーション演算に必要な演算処理情報3を第1バッファ604に一時的に格納する。例えば、演算処理部602で第1アプリケーション演算の処理を完了していない場合、第1バッファ604は、第2アプリケーション演算のフィードバックフラグ、演算処理情報2及び演算処理情報3を順次格納してもよい。
次に、演算処理情報3を第1バッファ604に格納した後、直ちにプログラム制御部601は第4アプリケーション演算に必要な演算処理情報4を第3バッファ606に格納する。ここで、プログラム制御部601は、第4アプリケーション演算のフィードバックフラグを演算処理情報4と共に第3バッファ606に一時的に格納する。
これによって、第1バッファ604は第2アプリケーション演算のフィードバックフラグ、演算処理情報2及び演算処理情報3を格納し、第3バッファ606は第4アプリケーション演算のフィードバックフラグ、及び演算処理情報4を格納する。
ここで、演算処理部602で第1アプリケーション演算の処理を完了した場合、演算処理部602は第1バッファ604及び第3バッファ606を確認する。これによって、演算処理部602は、第3バッファ606から第4アプリケーション演算のフィードバックフラグを読み出して第4アプリケーション演算のフィードバック情報をプログラム制御部601で必要とするものと判断する。
これによって、演算処理部602は、第3バッファ606から演算処理情報4を読み出して優先演算処理が設定された第4アプリケーション演算のフィードバック情報を生成する。そして、演算処理部602は、第4アプリケーション演算のフィードバック情報を第4バッファ607に一時的に格納する。言い換えれば、演算処理部602は、第2及び第3アプリケーション演算よりも第4アプリケーション演算を優先的に処理する。
ここで、第4アプリケーション演算のフィードバック情報を第4バッファ607に格納した後、演算処理部602は、第1バッファ604から第2アプリケーション演算のフィードバックフラグを読み出して第2アプリケーション演算のフィードバック情報をプログラム制御部601で必要とするものと判断する。これによって、演算処理部602は、第1バッファ604から演算処理情報2を読み出して第2アプリケーション演算を処理する。
ここで、プログラム制御部601は、演算処理部602で第2アプリケーション演算を処理する間に第5アプリケーション演算に必要な演算処理情報5の生成を開始する。言い換えれば、プログラム制御部601は、第4バッファ607で第4アプリケーション演算のフィードバック情報を用いて演算処理情報5の生成を開始してもよい。これによって、第4バッファ607は空になる。
ここで、プログラム制御部601で演算処理情報5の生成を完了する前に、演算処理部602は第2アプリケーション演算の処理を完了する。これによって、演算処理部602は第2アプリケーション演算のフィードバック情報を第2バッファ605に一時的に格納する。
そして、演算処理部602は第2アプリケーション演算の処理を完了した後、演算処理部602は、第1バッファ604から演算処理情報3を読み出して第3アプリケーション演算を処理する。ここで、プログラム制御部601は、演算処理部602で第3アプリケーション演算を処理する間、演算処理情報5の生成を完了してもよい。これによって、プログラム制御部601は演算処理情報5を第1バッファ604に一時的に格納する。
次に、演算処理部602は第3アプリケーション演算の処理を完了した後、演算処理部602は、第1バッファ604から演算処理情報5を読み出して第5アプリケーション演算を処理する。
ここで、プログラム制御部601は、演算処理部602で第5アプリケーション演算を処理する間に第6アプリケーション演算に必要な演算処理情報6を生成する。言い換えれば、プログラム制御部601は、第2バッファ605から第2アプリケーションのフィードバック情報を読み出して演算処理情報6を生成してもよい。そして、プログラム制御部601は、演算処理情報6を第1バッファ604に一時的に格納する。これによって、演算処理部602は、演算処理情報6を用いて第6アプリケーション演算の処理を完了する。
以上の図4、図5、及び図6では第4アプリケーション演算に優先演算処理が予め設定されたことと仮定したが、本発明はこの例示的な実施形態に限定されない。演算処理部は処理しようとするアプリケーション演算に優先演算処理が設定されたか否かを判断してもよい。
例えば、優先演算処理が必要な場合、プログラム制御部は、優先演算処理が必要なアプリケーション演算の演算処理情報と共に、優先演算フラグを通信チャネルに一時的に格納する。これにより、演算処理部は通信チャネルに格納された優先演算フラグを確認し、処理しようとするアプリケーション演算に優先演算処理が設定されたか否かを判断する。
以上の図3〜図6において、通信チャネルはバッファを用いて演算処理情報及びフィードバック情報のうち少なくとも1つを一時的に格納するものと説明したが、本発明はこの例示的な実施形態に限定されない。通信チャネルは、共有メモリ、レジスタ、及びハードワイヤーのうち少なくとも1つを含んでもよい。
図7は、図2から図6に示す演算処理部がフィードバックフラグを用いてフィードバック情報の必要性を判断する動作を説明するための図である。
図7に示すように、プログラム制御部701は、アプリケーションコードを実行することにより生じる第1アプリケーション演算に必要な演算処理情報を通信チャネル703に一時的に格納する。
例えば、プログラム制御部701は、演算処理部702で第1アプリケーション演算の処理を完了することができるように、第1アプリケーション演算に必要な演算パラメータ705を第1バッファ704に一時的に格納する。ここで、プログラム制御部701は、第1アプリケーション演算のフィードバックフラグ(F)706を演算パラメータ705と共に第1バッファ704に格納する。
すると、演算処理部702は第1バッファ704を確認し、第1アプリケーション演算のフィードバックフラグ706に基づいて第1アプリケーション演算のフィードバック情報をプログラム制御部701が必要とするものと判断する。
ここで、演算処理部702は第1バッファ704を確認し、第1アプリケーション演算の処理のための全ての演算パラメータが第1バッファ704に格納されたか否かを確認する。全ての演算パラメータが格納された場合、演算処理部702は、演算パラメータ705を用いて第1アプリケーション演算の処理を完了する。そして、演算処理部702は、第1アプリケーション演算のフィードバック情報を第2バッファ707に一時的に格納する。
以上の図3〜図7において、(1)プログラム制御部と演算処理部が互いに分担してアプリケーション演算を処理し、(2)プログラム制御部はアプリケーションコードを実行し、演算処理部はアプリケーション演算に必要な全体演算を処理する。
図8は、一実施形態に係るプログラム制御部がアプリケーションコードを実行し、演算処理部がアプリケーション演算を処理する動作を説明するための図である。特に、図8は、プログラム制御部は6個のアプリケーション演算に必要なアプリケーションコードを実行し、演算処理部は6個のアプリケーション演算を処理する実施形態を説明するための図である。
図8において、通信チャネルは第1から第4バッファを含み、第1バッファはフォワードFIFOバッファ、第2バッファはバックワードFIFOバッファ、第3バッファはフォワードクイックFIFOバッファ、及び第4バッファはバックワードクイックFIFOバッファであると仮定する。
そして、第4アプリケーション演算は優先演算処理が設定され、プログラム制御部801は第3アプリケーション演算のフィードバック情報と第4アプリケーション演算のフィードバック情報を必要とすることを演算処理部802と予め約束したものと仮定する。そして、第5アプリケーション演算は第4アプリケーション演算のフィードバック情報を必要とし、第6アプリケーション演算を第3アプリケーション演算のフィードバック情報を必要とすると仮定する。
図8に示すように、プログラム制御部801は、第1アプリケーションコードを実行して第1アプリケーション演算を処理する。一例として、プログラム制御部801は、演算処理部802で第1アプリケーション演算を処理するために必要な演算パラメータを生成する。例えば、第1アプリケーション演算の処理を準備するために用いられる演算パラメータは、第1アプリケーション演算で呼び出される関数情報、インデックス情報などを含んでもよい。
そして、プログラム制御部801は、第1アプリケーション演算を処理するために必要な演算パラメータ、第1アプリケーション演算処理に必要なデータ、及びデータが格納されたメモリアドレスのうち少なくとも1つを含む演算処理情報1を第1バッファ803に一時的に格納する。
そして、演算処理部802は第1及び第3バッファを確認する。これによって、演算処理部802は、第1バッファ803に演算処理情報1が一時的に格納されることを確認する。そして、演算処理部802は、第1バッファ803から演算処理情報1を読み出して第1アプリケーション演算を処理する。このように、演算処理情報1が読み出されることにより、第1バッファ803は空になる。
ここで、演算処理情報1が第1バッファ803に一時的に格納される即時に、プログラム制御部801は第2アプリケーションコードを実行して第2アプリケーション演算の処理を準備する。これによって、プログラム制御部801は演算処理情報2を第1バッファ804に一時的に格納する。次に、演算処理情報2が第1バッファ804に一時的に格納される即時、プログラム制御部801は、第3アプリケーションコードを実行して第3アプリケーション演算の処理を準備してもよい。
これによって、プログラム制御部810は演算処理情報3を第1バッファ805に一時的に格納する。ここで、演算処理部802で第1アプリケーション演算の処理を完了していない場合、第1バッファ805は演算処理情報2及び演算処理情報3を一時的に格納する。次に、第1アプリケーション演算の処理が完了した場合、演算処理部802は、第1バッファ805から演算処理情報2を読み出して第2アプリケーション演算を処理する。すると、演算処理情報2は第1バッファ806で空になり、演算処理情報3は第1バッファ806に残っていてもよい。
そして、演算処理情報3が第1バッファ805に一時的に格納される即時に、プログラム制御部801は、第4アプリケーションコードを実行して第4アプリケーション演算の処理を準備する。ここで、プログラム制御部801は、第4アプリケーション演算に優先演算処理が設定されることによって、演算処理情報4を第3バッファ807に一時的に格納する。
ここで、演算処理情報4が第3バッファ807に一時的に格納された場合、演算処理部802は、第2アプリケーション演算を処理している間であってもよい。すると、第1バッファ806は演算処理情報3を格納し、第3バッファ807は演算処理情報4を格納する。
ここで、第5アプリケーション演算は、第4アプリケーション演算のフィードバック情報を用いて処理されてもよい。これによって、プログラム制御部801は、演算処理部802で第4アプリケーション演算の処理を完了するまで待機する。例えば、プログラム制御部801は、第4アプリケーション演算のフィードバック情報が第4バッファ809に格納されるまで第4バッファ809を確認して待機してもよい。
そして、第2アプリケーション演算の処理が完了した場合、演算処理部802は第1バッファ806及び第3バッファ807を確認する。ここで、第3バッファ807は、優先演算処理が設定されたアプリケーション演算の演算処理情報を格納するバッファであってもよい。言い換えれば、第3バッファは、第1バッファに格納された演算処理情報よりも優先処理が必要な演算処理情報を格納するバッファである。
これによって、演算処理部802は、第3バッファ807から演算処理情報4を読み出して第4アプリケーション演算を処理する。これによって、第3バッファ808は空になる。
そして、演算処理部802は、第4アプリケーション演算のフィードバック情報を第4バッファ809に一時的に格納する。ここで、第4バッファ809は、優先演算処理が設定されたアプリケーション演算のフィードバック情報を格納するバッファであってもよい。言い換えれば、第4バッファ809は、次のアプリケーション演算の処理のためにプログラム制御部801で直ちに確認が必要なアプリケーション演算のフィードバック情報を格納するバッファであってもよい。
ここで、第4アプリケーション演算のフィードバック情報が第4バッファ809に格納されると直ちに、演算処理部802は第1バッファ810から演算処理情報3を読み出して第3アプリケーション演算を処理する。
ここで、演算処理部802で第3アプリケーション演算処理を完了する前に、プログラム制御部801は、第4バッファ809から第4アプリケーション演算のフィードバック情報を読み出して第5アプリケーション演算の処理を準備する。そして、プログラム制御部801は、演算処理情報5を第1バッファ811に一時的に格納する。次に、プログラム制御部801は、第4バッファ812に第3アプリケーションのフィードバック情報が格納されるまで待機する。
ここで、第3アプリケーション演算の処理が完了した場合、演算処理部802は、第3アプリケーションのフィードバック情報を第4バッファ812に一時的に格納する。ここで、演算処理部802は、第3アプリケーション演算のフィードバック情報を第2バッファ(図示せず)に一時的に格納する。
これによって、プログラム制御部801は第6アプリケーションコードを実行し、第4バッファ812から第3アプリケーションのフィードバック情報を読み出して第6アプリケーション演算の処理を準備する。そして、プログラム制御部801は、演算処理情報6を第1バッファ813に一時的に格納する。
ここで、演算処理部802で第5アプリケーション演算を処理している場合、演算処理部802は第5アプリケーション演算の処理を完了した後、演算処理情報6を用いて第6アプリケーション演算の処理を完了する。
図9は、一実施形態に係る演算処理装置でアプリケーションの実行を加速化する動作を説明するための図である。図9において、演算処理装置は、1つのマクロブロックを処理するビデオ動画復号化処理アプリケーションを実行する場合を仮定する。
図9に示すように、プログラム制御部901は、714サイクルの間にビデオ動画復号化処理アプリケーションを実行するためのアプリケーションコード及びアプリケーション演算を処理する。そして、演算処理部902は、536サイクルの間にビデオ動画復号化処理アプリケーションを実行するためのアプリケーション演算を処理する。
ここで、プログラム制御部901は、アプリケーションコードの実行に係るアプリケーション演算を演算処理部902と交差に処理することなく、同時に並列演算の処理を行ってアプリケーションの実行を加速化することができる。
例えば、プログラム制御部901は102サイクルの間にアプリケーション演算を処理し、演算処理部902で21サイクルの間にアプリケーション演算を処理するまで待機することなく、直ちに129サイクルの間に他のアプリケーション演算を処理してもよい。
同様に、演算処理部902は21サイクルの間にアプリケーション演算を処理し、プログラム制御部901が102サイクルの間にアプリケーション演算を処理するまで待機することなく、直ちに7サイクルの間、他のアプリケーション演算を処理する。これによって、アプリケーション演算処理時に待機する間に発生する遅延が減少または除去されることで、アプリケーションの実行時間が短縮され得る。
図10は、一実施形態に係る演算処理装置が1つ以上のプログラム制御部を備える構成を示す図である。図10に示すように、演算処理装置は1つ以上のプログラム制御部1001、1つ以上の演算処理部1002、及び通信チャネル1003を備える。
一例として、N個のプログラム制御部は第1から第Nアプリケーションコードを互いに分けて実行し、第1から第Nアプリケーション演算の処理を準備してもよい。そして、N個のプログラム制御部は演算処理情報1から演算処理情報Nを通信チャネルに一時的に格納してもよい。
そして、M個の演算処理部は、第1から第Nアプリケーション演算を互いに分けて並列処理する。ここで、M個の演算処理部は、演算処理情報1から演算処理情報Nを用いて第1から第Nアプリケーション演算を処理する。ここで、NとMは同一であってもよく、互いに異なってもよい。言い換えれば、演算処理部とプログラム制御部の個数が同一であってもよく、異なってもよい。
ここで、M個の演算処理部は必要に応じてフィードバック情報を通信チャネルに一時的に格納する。ここで、必要に応じてフィードバック情報を通信チャネルに格納する動作は、図2に示す演算処理部でフィードバック情報を通信チャネルに格納する動作と同一であるため、重複する説明は省略する。
他の例として、N個のプログラム制御部は、第1から第Nアプリケーションコードを互いに分けて実行してもよい。そして、N個のプログラム制御部は、それぞれで実行するアプリケーションコードに該当するアプリケーション演算の一部の演算を処理してもよい。そして、N個のプログラム制御部は、処理された一部の演算の演算結果を含む演算処理情報を通信チャネルに一時的に格納してもよい。
これによって、M個の演算処理部は、N個のアプリケーション演算を対象にN個のプログラム制御部で処理された一部の演算を除いた演算を処理する。このように、アプリケーションコードとアプリケーション演算を行うプログラム制御部と演算処理部の個数が増加するほど、アプリケーションの実行時間が短縮され、その効率性が高くなる。
図11は、一実施形態に係る演算処理方法を示すフローチャートである。図11に示す演算処理方法は図2に示す演算処理装置によって行われ、演算処理装置はプログラム制御部及び演算処理部を備えてもよい。
図11に示すように、ステップS1101においてプログラム制御部は、アプリケーションコードを実行する。
ここで、アプリケーションコードは、アプリケーションを駆動するために演算処理を指示する命令語であってもよい。例えば、アプリケーションコードは、条件付き分岐命令、関数呼び出し、及び分岐命令などを含んでもよい。
そして、ステップS1102においてプログラム制御部は、アプリケーション演算に必要な演算処理情報を通信チャネルに一時的に格納する。
ここで、アプリケーション演算は、アプリケーションコードが実行されることによってアプリケーションを駆動するために必要な演算であってもよい。そして、演算処理情報は、アプリケーション演算の処理に必要なデータ、データが格納されたメモリのアドレス、及び演算パラメータのうち少なくとも1つを含んでもよい。
一例として、プログラム制御部は、アプリケーションコードの実行に基づいてアプリケーション演算の処理を準備してもよい。すなわち、プログラム制御部は、演算処理部でアプリケーション演算を処理するために必要とする演算パラメータを準備して通信チャネルに一時的に格納する。例えば、準備作業のために用いられる演算パラメータは、演算処理部で処理されるアプリケーション演算で呼び出される関数情報、インデックス情報などを含んでもよい。
他の例として、プログラム制御部は、アプリケーションコードの実行に基づいてアプリケーション演算の全体演算のうちの一部の演算を処理してもよい。そして、プログラム制御部は、処理された一部の演算に該当する演算パラメータを通信チャネルに一時的に格納してもよい。例えば、プログラム制御部で一部の演算を処理した場合、通信チャネルに格納された演算パラメータは、処理された一部の演算の処理結果を含んでもよい。
ここで、プログラム制御部は、通信チャネルのオーバーフローの存在有無に基づいて演算処理情報を通信チャネルに格納する。例えば、オーバーフローが存在する場合、プログラム制御部は、通信チャネルの格納空間が確保されるまで待機した後、演算処理情報を通信チャネルに格納してもよい。
次に、ステップS1103において、演算処理情報を通信チャネルに格納した後、プログラム制御部は次のアプリケーションコードを実行する。そして、プログラム制御部は、次のアプリケーション演算に必要な演算処理情報を通信チャネルに一時的に格納する。言い換えれば、プログラム制御部は、演算処理部でアプリケーション演算の処理を完了するまで待機せず、次のアプリケーションコードを実行してもよい。
例えば、プログラム制御部は、第1アプリケーション演算に必要な演算処理情報1を通信チャネルに一時的に格納した後、第1アプリケーション演算の処理が完了する前に第2アプリケーション演算に必要な演算処理情報2を通信チャネルに一時的に格納してもよい。ここで、第2アプリケーション演算は、第1アプリケーション演算後に処理される演算であってもよい。
次に、ステップS1104において演算処理部は、通信チャネルに演算処理情報が格納されたか否かを確認する。
ここで、通信チャネルは、演算処理情報、及びフィードバック情報のうち少なくとも1つを一時的に格納する格納空間である。例えば、通信チャネルは、バッファ、共有メモリ、レジスタ、及びハードワイヤーのうち少なくとも1つを含んでもよい。一実施形態によれば、通信チャネルは複数の分離された通信チャネルまたは第1ライン及び第2ラインのような通信ラインを含んでもよい。通信チャネルのそれぞれの第1ライン及び第2ラインは、バッファ、共有メモリ、レジスタまたはハードワイヤーのうちのいずれか1つであってもよい。
例えば、プログラム制御部で演算処理情報を通信チャネルに格納した場合、演算処理部は、通信チャネルをモニタリングして演算処理情報が格納されることを確認することができる。そして、演算処理部は、アプリケーション演算に必要な全ての演算パラメータが通信チャネルに格納されたか否かを確認する。
これによって、ステップS1105において演算処理部は、通信チャネルから演算処理情報を読み出してアプリケーション演算を処理する。
一例として、プログラム制御部でアプリケーションコードを実行してアプリケーション演算の処理の準備だけ行った場合、演算処理部は、演算処理情報を用いてアプリケーション演算を100%処理することができる。
他の例として、プログラム制御部でアプリケーション演算の一部の演算を処理した場合、演算処理部は、演算処理情報を用いて一部の演算を除いた演算を処理する。
そして、演算処理部は、アプリケーション演算を処理した結果をレジスタファイル、メモリのうち少なくとも1つに格納する。ここで、演算処理部は、必要に応じてアプリケーション演算を処理した結果を通信チャネルを用いてプログラム制御部にフィードバックしてもよい。
図12は、一実施形態に係る優先演算処理が設定されたアプリケーション演算を処理する方法を示すフローチャートである。図12に示す演算処理方法は図2に示す演算処理装置によって行われ、演算処理装置はプログラム制御部及び演算処理部を備える。図12に示すように、ステップS1201においてプログラム制御部は、アプリケーションコードを実行する。
ここで、アプリケーション演算に優先演算処理が設定されていない場合(S1202:いいえ)、ステップS1203において、プログラム制御部は、優先演算処理が設定されていないアプリケーション演算の演算処理情報1を通信チャネルに一時的に格納する。例えば、プログラム制御部は、フォワードFIFOバッファに演算処理情報1を一時的に格納してもよい。
そして、アプリケーション演算に優先演算処理が設定された場合(S1202:はい)、ステップS1204においてプログラム制御部は、優先演算処理が設定されたアプリケーション演算の演算処理情報2を通信チャネルに一時的に格納する。
例えば、プログラム制御部は、フォワードクイックFIFOバッファに演算処理情報2を一時的に格納してもよい。ここで、フォワードクイックFIFOバッファは、フォワードFIFOバッファに格納された演算処理情報よりも優先的に処理を要求する演算を格納するために用いられる。
ここで、プログラム制御部と演算処理部はアプリケーションを実行するために必要なアプリケーション演算のうち、優先演算処理が設定されたアプリケーション演算を予め約束してもよい。
ここで、予め約束していない場合、プログラム制御部は、演算処理情報と共に優先演算フラグを通信チャネルに一時的に格納する。
例えば、優先演算処理が必要なアプリケーション演算の演算処理情報2と優先演算処理が必要ではないアプリケーション演算の演算処理情報1が全てフォワードFIFOバッファを用いる場合、プログラム制御部は、優先演算フラグを演算処理情報2と共にフォワードFIFOバッファに格納する。ここで、プログラム制御部は、現在のアプリケーション演算の処理結果を直ちに確認しなければならない場合、現在のアプリケーション演算が優先演算処理が必要な演算であることを判断する。
次に、ステップS1205において演算処理部は、通信チャネルをモニタリングして通信チャネルに演算処理情報が格納されたか否かを確認する。
例えば、演算処理部は、フォワードFIFOバッファ及びフォワードクイックFIFOバッファをモニタリングして演算処理情報が格納されたか否かを確認してもよい。ここで、演算処理部は、通信チャネルのフォワードFIFOバッファまたはフォワードクイックFIFOバッファにアプリケーション演算に必要な全ての演算パラメータが格納されたか否かを確認する。
そして、演算処理情報2が格納されることを確認した場合、ステップS1206において演算処理部は、通信チャネルから演算処理情報2を読み出して優先演算処理が設定されたアプリケーション演算を処理する。
例えば、演算処理部が演算処理情報1はフォワードFIFOバッファに格納され、演算処理情報2はフォワードクイックFIFOバッファに格納されることを確認した場合、演算処理部は演算処理情報2に該当するアプリケーション演算を演算処理情報1に該当するアプリケーション演算よりも優先的に処理してもよい。
ここで、プログラム制御部が優先演算処理が設定されたアプリケーション演算の処理結果であるフィードバック情報を必要とすることを演算処理部と予め約束した場合、演算処理部は、フィードバック情報を通信チャネルに一時的に格納する。
例えば、演算処理部は、バックワードFIFOバッファ及びバックワードクイックFIFOバッファのうち少なくとも1つにフィードバック情報を格納する。これによって、プログラム制御部は、通信チャネルからフィードバック情報を読み出して次のアプリケーション演算処理に必要な演算処理情報を通信チャネルに格納する。
次に、ステップS1207において演算処理部は、通信チャネルから演算処理情報1を読み出してアプリケーション演算を処理する。
例えば、優先演算処理が設定されたアプリケーション演算の処理が完了すると、演算処理部は、優先演算処理が設定されていないアプリケーションの演算を処理する。
図13は、一実施形態に係るフィードバック情報のフィードバック必要性を判断する方法を説明するために提供されるフローチャートである。図13に示すフィードバック必要性を判断する方法は、図2に示す演算処理装置によって行われ、演算処理装置はプログラム制御部及び演算処理部を備える。図13に示すように、ステップS1301においてプログラム制御部は、アプリケーションコードを実行する。
そして、ステップS1302においてプログラム制御部は、第1アプリケーション演算に必要な演算処理情報1を通信チャネルに一時的に格納する。
ここで、演算処理部で第1アプリケーション演算を処理した結果であるフィードバック情報が必要な場合、ステップS1303においてプログラム制御部は、フィードバックフラグを演算処理情報と共に通信チャネルに一時的に格納する。例えば、プログラム制御部は、フォワードFIFOバッファ及びフォワードクイックFIFOバッファのうち少なくとも1つに演算処理情報1とフィードバックフラグを格納してもよい。
一例として、第2アプリケーション演算を処理するために第1アプリケーション演算のフィードバック情報が必要な場合、プログラム制御部は、演算処理情報1と共にフィードバックフラグを通信チャネルに一時的に格納してもよい。ここで、プログラム制御部と演算処理部がアプリケーションを駆動するときフィードバック情報を必要とするアプリケーション演算を予め約束した場合、プログラム制御部はフィードバックフラグを通信チャネルに格納しなくてもよい。
次に、ステップS1304において、演算処理情報1とフィードバックフラグを通信チャネルに格納した後、プログラム制御部は第2アプリケーションコードを実行する。
そして、プログラム制御部は、第2アプリケーション演算に必要な演算処理情報2を通信チャネルに一時的に格納する。言い換えれば、プログラム制御部は、演算処理部で第1アプリケーション演算の処理を完了するまで待機することなく、第2アプリケーションコードを実行して演算処理情報2を通信チャネルに一時的に格納する。
そして、ステップS1305において演算処理部は、通信チャネルをモニタリングして通信チャネルに演算処理情報が格納されたか否かを確認する。
ここで、演算処理部は、通信チャネルをモニタリングしてフィードバックフラグが通信チャネルに格納されることを確認する。これによって、演算処理部は、フィードバックフラグに基づいてアプリケーション演算のフィードバック情報がプログラム制御部で必要であることを判断する。
次に、ステップS1306において演算処理部は、通信チャネルから演算処理情報1を読み出して第1アプリケーション演算を処理する。
そして、ステップS1307において演算処理部は、第1アプリケーション演算を処理した結果であるフィードバック情報を通信チャネルに一時的に格納する。次に、演算処理部は、演算処理情報2を用いて第2アプリケーション演算を処理する。
ここで、第1アプリケーション演算のフィードバック情報が通信チャネルに格納された場合、ステップS1308においてプログラム制御部は、通信チャネルからフィードバック情報を読み出して第3アプリケーション演算に必要な演算処理情報3を生成する。そして、プログラム制御部は、生成された演算処理情報3を通信チャネルに一時的に格納する。
例えば、プログラム制御部は、第1アプリケーション演算のフィードバック情報を用いて第3アプリケーション演算に必要な演算処理情報3を通信チャネルに格納してもよい。これによって、ステップS1309において演算処理部は、演算処理情報3を用いて第3アプリケーション演算を処理する。
以上の図12及び図13における通信チャネルではFIFOバッファを用いるものと説明したが、本発明はこの例示的な実施形態に限定されない。通信チャネルでは共有メモリ、レジスタ、ハードワイヤーのうち少なくとも1つが用いられてもよい。
実施形態に係る方法は、多様なコンピュータ手段によって行うことができるプログラム命令の形態で実現されてもよく、かかるプログラム命令は、コンピュータ読み出し可能媒体に記録されてもよい。前記コンピュータ読み出し可能媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせたものを含んでもよい。前記媒体に記録されるプログラム命令は、本発明のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。
以上のように本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような記載から多様な修正及び変形が可能である。
したがって、本発明の範囲は、説明された実施形態に限定されて定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。
101、201、301、401、501、601、701、1001 プログラム制御部
102、204、303、403、503、603、703、1003 通信チャネル
103、205、302、402、502、602、702、1002 演算処理部
202、206 レジスタファイル
203、207、208 メモリ

Claims (16)

  1. アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するプログラム制御部であって、前記演算処理情報は、前記アプリケーション演算のフィードバック情報が必要であることを示すフィードバックフラグを含む、プログラム制御部と、
    前記通信チャネルに格納された演算処理情報を用いて前記アプリケーション演算を処理する演算処理部であって、前記演算処理情報がフィードバックフラグを含む場合に、前記アプリケーション演算の処理結果に対応するフィードバック情報を前記通信チャネルに格納する、演算処理部と、
    を備え、
    前記プログラム制御部は、前記通信チャネルに格納された前記フィードバック情報に基づいて第2アプリケーション演算を処理する、演算処理装置。
  2. 前記プログラム制御部は、優先演算処理が設定されたアプリケーション演算の演算処理情報を前記通信チャネルに格納することを特徴とする請求項に記載の演算処理装置。
  3. 前記演算処理部は、優先演算処理が設定されたアプリケーション演算のフィードバック情報を前記通信チャネルに格納することを特徴とする請求項1又は2に記載の演算処理装置。
  4. 前記プログラム制御部は、前記通信チャネルのオーバーフローの存在有無に基づいて前記演算処理情報を前記通信チャネルに格納することを特徴とする請求項1からのいずれか1項に記載の演算処理装置。
  5. 前記プログラム制御部は、前記アプリケーション演算に必要な演算全体のうち一部の演算を処理し、
    前記演算処理部は、前記一部の演算を除いた演算を処理して前記アプリケーション演算の処理を完了することを特徴とする請求項1乃至のいずれか1項に記載の演算処理装置。
  6. 前記演算処理情報は、前記アプリケーション演算に必要なデータ、前記データが格納されたメモリアドレス、及び演算パラメータのうち少なくとも1つを含むことを特徴とする請求項1乃至のいずれか1項に記載の演算処理装置。
  7. 第1ライン及び第2ラインを含む通信チャネルをさらに含むことを特徴とする請求項1乃至のいずれか1項に記載の演算処理装置。
  8. 前記第1ラインはプログラム制御部から演算処理部に情報を送信し、前記第2ラインは演算処理部からプログラム制御部に情報を送信することを特徴とする請求項に記載の演算処理装置。
  9. プログラム制御部によるアプリケーションの演算が加速される必要がある場合、前記プログラム制御部は前記第1ラインを介してアプリケーション演算に関連する情報を演算処理部に送信し、
    演算処理部は、前記第2ラインを介してアプリケーション演算の処理結果に対応するフィードバック情報をプログラム制御部に送信することを特徴とする請求項又はに記載の演算処理装置。
  10. 前記第1ライン及び第2ラインそれぞれは、バッファ、共有メモリ、レジスタ及びハードワイヤーのうち少なくとも1つを含むことを特徴とする求項乃至のいずれか1項に記載の演算処理装置。
  11. 前記通信チャネルは、
    前記プログラム制御部から前記演算処理部に情報を送信するFIFOバッファと、
    前記プログラム制御部から前記演算処理部に、前記FIFOバッファの送信する情報よりも高い優先度の情報を送信するフォワードクイックFIFOバッファと、
    前記演算処理部から前記プログラム制御部に情報を送信するバックワードFIFOバッファと、
    前記演算処理部から前記プログラム制御部に、前記バックワードFIFOバッファの送信する情報よりも高い優先度の情報を送信するバックワードクイックFIFOバッファと、
    を含むことを特徴とする、請求項1に記載の演算処理装置。
  12. 前記プログラム制御部が前記演算処理部の処理結果をチェックする必要がない場合、前記プログラム制御部はフォワードFIFOバッファを介してアプリケーション演算に関連する情報を前記演算処理部に送信し、
    前記プログラム制御部が前記演算処理部の処理結果をチェックしなければならない場合、前記プログラム制御部は、前記フォワードクイックFIFOバッファを介してアプリケーション演算に関連する情報を演算処理部に送信することを特徴とする請求項11に記載の演算処理装置。
  13. 前記プログラム制御部が前記演算処理部の処理結果をチェックする必要がない場合、前記演算処理部は、前記バックワードFIFOバッファを介してアプリケーションの実行された演算を前記プログラム制御部に送信し、
    前記プログラム制御部が前記演算処理部の結果をチェックしなければならない場合、前記演算処理部は、前記バックワードクイックFIFOバッファを介してアプリケーションの実行された演算を前記プログラム制御部に送信することを特徴とする請求項11または12に記載の演算処理装置。
  14. 演算処理装置のプログラム制御部が、アプリケーションコードの実行により生じるアプリケーション演算に必要な演算処理情報を通信チャネルに格納するステップであって、前記演算処理情報は、前記アプリケーション演算のフィードバック情報が必要であることを示すフィードバックフラグを含む、ステップと、
    前記演算処理装置の演算処理部が、前記通信チャネルに格納された演算処理情報を用いてアプリケーション演算を処理するステップと、
    前記演算処理情報がフィードバックフラグを含む場合に、前記演算処理部が、前記アプリケーション演算の処理結果に対応するフィードバック情報を前記通信チャネルに格納するステップと、
    前記プログラム制御部が、前記通信チャネルに格納された前記フィードバック情報に基づいて第2アプリケーション演算を処理するステップと、
    を含演算処理方法。
  15. 前記通信チャネルは、前記プログラム制御部から演算処理部に情報を送信する第1ライン及び前記演算処理部からプログラム制御部に情報を送信する第2ラインを含むことを特徴とする請求項14に記載の演算処理方法。
  16. 前記演算処理情報を通信チャネルに格納するステップは、前記アプリケーション演算に必要な演算全体のうち一部の演算を処理するステップを有し、
    前記アプリケーション演算を処理するステップは、前記一部の演算を除いた演算を処理して前記アプリケーション演算の処理を完了することを特徴とする請求項14または15に記載の演算処理方法。
JP2013148332A 2012-07-19 2013-07-17 アプリケーションを高速に処理する演算処理装置及び方法 Expired - Fee Related JP6433645B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2012-0078847 2012-07-19
KR1020120078847A KR101984635B1 (ko) 2012-07-19 2012-07-19 어플리케이션을 고속으로 처리하는 연산 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
JP2014021987A JP2014021987A (ja) 2014-02-03
JP6433645B2 true JP6433645B2 (ja) 2018-12-05

Family

ID=48832784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013148332A Expired - Fee Related JP6433645B2 (ja) 2012-07-19 2013-07-17 アプリケーションを高速に処理する演算処理装置及び方法

Country Status (5)

Country Link
US (1) US9471309B2 (ja)
EP (1) EP2687985A3 (ja)
JP (1) JP6433645B2 (ja)
KR (1) KR101984635B1 (ja)
CN (1) CN103577254B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101971173B1 (ko) * 2016-11-23 2019-04-22 주식회사 모르미 병렬 처리부 및 병렬 처리 장치
US10884976B2 (en) 2018-05-22 2021-01-05 Morumi Co., Ltd. Parallel processing unit and device for parallel processing
KR102089450B1 (ko) * 2019-09-19 2020-05-26 한국과학기술정보연구원 데이터이주장치 및 그 동작 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04295951A (ja) * 1991-03-25 1992-10-20 Omron Corp マルチプロセッサシステムにおけるデータ通信装置
KR970006413B1 (ko) * 1993-12-29 1997-04-28 한국전기통신공사 퍼지 컴퓨터
US5590323A (en) 1994-05-13 1996-12-31 Lucent Technologies Inc. Optimal parallel processor architecture for real time multitasking
US5983278A (en) * 1996-04-19 1999-11-09 Lucent Technologies Inc. Low-loss, fair bandwidth allocation flow control in a packet switch
US6741294B2 (en) 1997-12-08 2004-05-25 Sony Corporation Digital signal processor and digital signal processing method
US6952827B1 (en) 1998-11-13 2005-10-04 Cray Inc. User program and operating system interface in a multithreaded environment
US6668317B1 (en) 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6574725B1 (en) * 1999-11-01 2003-06-03 Advanced Micro Devices, Inc. Method and mechanism for speculatively executing threads of instructions
US7231500B2 (en) 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US7185094B2 (en) 2001-03-30 2007-02-27 Sandcherry, Inc. Media session framework using a control module to direct and manage application and service servers
GB0407384D0 (en) 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
WO2006085277A2 (en) * 2005-02-14 2006-08-17 Koninklijke Philips Electronics N.V. An electronic parallel processing circuit
JP2007026095A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 並列演算装置
JP4033215B2 (ja) 2006-01-31 2008-01-16 セイコーエプソン株式会社 マルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム
KR101120398B1 (ko) 2006-02-03 2012-02-24 러셀 에이치. Ⅲ 피시 스레드 최적화된 멀티프로세서 구조
KR101421054B1 (ko) * 2007-08-06 2014-07-18 삼성전자주식회사 버퍼를 이용한 연산 분산 방법 및 이를 이용한 연산 분산시스템
US8310492B2 (en) * 2009-09-03 2012-11-13 Ati Technologies Ulc Hardware-based scheduling of GPU work
KR101292670B1 (ko) * 2009-10-29 2013-08-02 한국전자통신연구원 벡터 프로세싱 장치 및 방법

Also Published As

Publication number Publication date
EP2687985A2 (en) 2014-01-22
KR20140012320A (ko) 2014-02-03
CN103577254A (zh) 2014-02-12
CN103577254B (zh) 2018-11-02
JP2014021987A (ja) 2014-02-03
US9471309B2 (en) 2016-10-18
KR101984635B1 (ko) 2019-05-31
EP2687985A3 (en) 2014-05-07
US20140025934A1 (en) 2014-01-23

Similar Documents

Publication Publication Date Title
US20150006766A1 (en) Hardware-Assisted DMA Transfer with Dependency
TWI489392B (zh) 多個應用程式分享的圖形處理單元
JP2017117204A (ja) プロセッサ、再構成可能回路の制御方法及びプログラム
JP6433645B2 (ja) アプリケーションを高速に処理する演算処理装置及び方法
JP2007207026A (ja) Dma転送装置
JP2015106311A (ja) 通信制御装置、情報処理装置、並列計算機システム、制御プログラム、及び並列計算機システムの制御方法
US9105208B2 (en) Method and apparatus for graphic processing using multi-threading
JP2014102683A (ja) 情報処理装置の制御プログラム、情報処理装置の制御方法および情報処理装置
JPWO2011135759A1 (ja) 情報処理装置及びタスク切り替え方法
TW201435581A (zh) 透過管線狀態繫結觸發的效能事件擷取
TWI457828B (zh) 執行緒陣列粒化執行的優先權計算
TW201351276A (zh) 計算工作的排程和執行
KR20210084220A (ko) 부분 판독/기입을 갖는 재구성 가능한 시스톨릭 어레이를 위한 시스템 및 방법
CN111221756B (zh) 一种上位机高效下行数据传输的方法
JP6368452B2 (ja) 非同期のデバイスによって実行されるタスクのスケジューリングの向上
JP5238876B2 (ja) 情報処理装置及び情報処理方法
CN105630593A (zh) 用于处理中断的方法
JP5893624B2 (ja) マルチコアシステムのためのダイレクトメモリアクセス装置およびその動作方法
US20140281423A1 (en) Processor and method for processing instructions using at least one processing pipeline
US20130342549A1 (en) Apparatus and method for processing rendering data
CN107025064B (zh) 一种低延迟高iops的数据访问方法
KR20230124598A (ko) 높은 처리량 및 낮은 오버헤드 커널 개시를 위한 압축 커맨드 패킷
CN109564510A (zh) 用于在地址生成时间分配加载和存储队列的***和方法
JP5540799B2 (ja) データ入出力制御方法,データ入出力制御プログラムおよびデータ入出力制御装置
JP2008102599A (ja) プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180717

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: 20181016

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181107

R150 Certificate of patent or registration of utility model

Ref document number: 6433645

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees