JP2004070524A - 演算装置及びその演算方法 - Google Patents
演算装置及びその演算方法 Download PDFInfo
- Publication number
- JP2004070524A JP2004070524A JP2002226604A JP2002226604A JP2004070524A JP 2004070524 A JP2004070524 A JP 2004070524A JP 2002226604 A JP2002226604 A JP 2002226604A JP 2002226604 A JP2002226604 A JP 2002226604A JP 2004070524 A JP2004070524 A JP 2004070524A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- conditional branch
- arithmetic
- configuration information
- reconfigurable
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 164
- 238000000034 method Methods 0.000 claims description 58
- 230000008569 process Effects 0.000 claims description 51
- 238000013500 data storage Methods 0.000 description 27
- 230000003252 repetitive effect Effects 0.000 description 9
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】条件分岐付きの演算処理が条件分岐なしの第1の処理と条件分岐付きの第2の処理に分割され、条件分岐なしの第1の処理が再構成可能な演算手段に割り当てられ、当該第1の処理に基づいてハードウェアの構成情報が生成され、当該構成情報に基づき再構成された演算手段により実行され、条件分岐付きの第2の処理がCPUなどの演算手段に割り当てられ、CPUによって割り当てられた条件分岐付きの第2の処理が実行される。当該処理の結果を用いて、上記第1の処理の結果を修正し、条件分岐付き演算処理の結果が得られる。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、再構成可能なハードウェアを有する演算装置において、条件分岐処理に対して処理速度の向上をはかる演算装置及びその演算方法に関するものである。
【0002】
【従来の技術】
音声や画像信号処理において、演算量の高い処理、例えば、積和演算の繰り返し処理などが多く含まれている。このような処理負荷の重い演算をCPUに実行させると、CPUの処理負荷が重くなり、処理速度が低下してしまう。このため、CPUにとって処理負荷の重い演算を予め抽出し、この部分の演算を再構成可能なハードウェアに割り当てることによって、CPUの処理負担を低減させ、高速の処理を実現できる処理方法が提案されている。
【0003】
図5は、再構成可能な演算装置の一構成例を示している。図示のように、再構成可能な演算装置30は、構成情報記憶部301、データ記憶部302及び演算実行部303によって構成されている。また、図5には、当該再構成可能な演算装置30に関連するホストCPU10及び共有メモリ20も示されている。
【0004】
ホストCPU10は、構成情報及び演算データを再構成可能な演算装置30に提供し、また、再構成可能な演算装置の演算結果を受け取る。
共有メモリ20は、ホストCPU10によってアクセス可能であり、再構成可能な演算装置の構成情報、演算データ及び演算結果を保持するために用いられている。
【0005】
再構成可能な演算装置30において、構成情報記憶部301は、ホストCPUから入力される構成情報を保持し、保持された構成情報を演算実行部303に提供する。
データ記憶部302は、ホストCPU10から入力される演算データを保持し、保持された演算データを演算実行部303に提供する。また、データ記憶部302は、演算実行部303によって行われた演算結果を保持し、保持された演算結果を共有メモリ20に出力する。
【0006】
演算実行部303は、複数の演算器、例えば、加算器、乗算器などによって構成され、構成情報部301から入力される構成情報に基づき、これらの演算器を再構成することで、構成情報に対応した新しい演算機能を実現するための演算回路が構成される。なお、図5において、演算実行部は、演算器1、演算器2及び演算器3の三つの演算器のみを例示しているが、実行の演算実行部は、さらに複数の演算器によって構成される。また、これらの演算器のうち、構成情報に応じて、必要なものだけを用いて再構成することもできる。
【0007】
図6は、上述した再構成可能な演算装置の演算処理を示すフローチャートである。以下、図5及び図6を参照しつつ、再構成可能な演算装置の動作について説明する。
まず、データ記憶部302が必要に応じて初期化される(ステップS301)、続いて、構成情報記憶部301が必要に応じて初期化される(ステップS302)。
次に、ホストCPU10などからデータ記憶部302に演算データが読み込まれる(ステップS303)。そして、ホストCPU10などから構成情報記憶部301に構成情報が転送される(ステップS304)。
【0008】
演算実行部において、構成情報記憶部301から出力される構成情報に基づき、ハードウェアの再構成が行われる(ステップS305)。
次に、データ記憶部302から演算データが読み込み、それに基づき再構成されたハードウェアで演算が実行される(ステップS306)。
【0009】
演算終了後、演算結果がデータ記憶部302に転送され、データ記憶部302に記憶される(ステップS307)。そして、データ記憶部302から共有メモリ20に演算結果が転送される(ステップS308)。
【0010】
上述した再構成可能演算装置によって、構成情報記憶部301の構成情報に基づき、演算実行部のハードウェアの組合せが再構成されるので、所望の演算をハードウェアによって高速に実行することができる。このため、ホストCPU10は、処理負荷の重い演算を抽出し、その演算を実現するためのハードウェア構成をもとに構成情報を生成し、再構成可能な演算装置30に提供すれば、再構成可能な演算装置30において、演算実行部303は、構成情報に基づき再構成され、ホストCPU10から提供される演算データに基づき、高速に演算を行ってその結果を共有メモリ20に転送する。これによって、ホストCPU10の処理負荷を大幅低減でき、処理時間を短縮でき、高速なデータ処理を容易に実現可能である。
【0011】
また、再構成可能な演算実行部303において、FPGA(Field programmable gate array)などに較べて構成変更の単位が大きく設定されており、構成情報情報を変更して加算器、乗算器などを組み合わせることで多種類の演算に対応可能な構成になっている。これによって、ホストCPU10などでは処理の重い演算を再構成可能な演算装置に適応的に割り当てることによって、全体の処理時間を短縮できる。
【0012】
【発明が解決しようとする課題】
ところで、上述した従来の再構成可能な演算装置では、条件分岐を含む処理を高速に演算することができない。
図7は、従来の再構成可能な演算装置を用いた条件分岐処理の割り当てを示すフローチャートである。図示のように、まず、ソフトウェアにおいて、プロファイラを用いて演算処理の重い箇所の抽出が行われる(ステップS401)。
次にプロファイルで抽出した処理の重い演算箇所を再構成可能な演算装置に処理の割り当てが可能かについて判断が行われる(ステップS402)。
【0013】
上記判断の結果、処理の割り当てが可能な場合、構成情報を用意して演算の前にハードウェアを再構成して処理を割り当てる(ステップS403)。この状態で演算することによってソフトウェア処理と比較して非常に高速な演算を実行することができる。
一方、判断の結果、処理の割り当てが不可能な場合、ホストCPU10等で演算処理を行わざるを得ないため、再構成可能な演算装置と比較して処理速度が低くなる。
【0014】
なお、上述した再構成可能な演算装置に処理の割り当てが不可能な場合として、特にソフトウェアでの繰り返し演算の中に条件分岐が存在する場合などが挙げられる。この場合はプロファイルの段階で条件分岐を演算の外に出せるか否かを検討するが、アルゴリズム的に困難な場合が多い。
【0015】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、繰り返し演算処理を行うループ内に条件分岐が存在しても、再構成可能なハードウェアにより演算を実行することができ、条件分岐を含む処理負荷の重い演算の処理時間を短縮でき、処理速度を向上できる演算装置及びその演算方法を提供することにある。
【0016】
【課題を解決するための手段】
上記目的を達成するため、本発明の演算装置は、条件分岐付き演算処理を実行する演算装置であって、上記条件分岐付き演算処理を条件分岐なしの第1処理と条件分岐付きの第2の処理に分割し、上記条件分岐なしの第1の処理に応じた構成情報を生成する構成情報生成手段と、上記構成情報に基づいて再構成をし、演算データに基づいて、上記分割された条件分岐なしの第1の処理を実行する再構成可能な演算手段と、上記分割された条件分岐付きの第2の処理を行い、当該処理の結果に応じて、上記再構成可能な演算手段の演算結果を修正する演算手段とを有する。
【0017】
また、本発明では、好適には、上記再構成可能な演算手段には、上記構成情報を保持する構成情報保持手段と、外部から入力される上記演算データを保持する演算データ保持手段と、上記構成情報に基づき、再構成される複数の演算素子とを有する。
【0018】
また、本発明では、好適には、上記構成情報生成手段には、上記条件分岐なしの第1の処理の頻度が、上記条件分岐付きの第2の処理の頻度より高くなるように、上記演算処理を分割する分割手段を有する。
【0019】
また、本発明の演算方法は、条件分岐付き演算処理を行う演算方法であって、上記条件分岐付き演算処理を条件分岐なしの第1処理と条件分岐付きの第2の処理に分割する分割ステップと、上記分割された条件分岐なしの第1の処理に応じた構成情報を生成する構成情報生成ステップと、上記構成情報に基づいて再構成し、演算データに基づいて上記分割された条件分岐なしの第1の処理を実行する第1の演算ステップと、上記分割された条件分岐付きの第2の処理を行い、当該処理の結果に応じて、上記第1の演算ステップの演算結果を修正する第2の演算ステップとを有する。
【0020】
さらに、本発明では、好適には、上記分割ステップにおいて、上記条件分岐なしの第1処理の頻度が、上記条件分岐付きの第2の処理の頻度より高くなるように、上記演算処理を分割する。
【0021】
本発明によれば、条件分岐付きの演算処理が条件分岐なしの第1の処理と条件分岐付きの第2の処理に分割され、条件分岐なしの第1の処理が再構成可能な演算手段に割り当てられ、当該第1の処理に基づいてハードウェアの構成情報が生成され、当該構成情報に基づき再構成可能な演算手段において演算素子が再構成され、演算データに基づき所望の演算が実行される。これによって条件分岐なしの第1の処理が、ハードウェアにより高速に実行することが可能となる。
条件分岐付きの第2の処理がCPUなどの固定の演算手段に割り当てられ、CPUによって、分岐条件に基づいて割り当てられた条件分岐付きの第2の処理が実行される。当該第2の処理の結果を用いて、再構成可能な演算手段による第1の処理の結果を修正し、その結果、条件分岐付き演算処理の結果が得られる。
【0022】
このように、本発明によれば、再構成可能なハードウェアを有する演算手段において、処理負荷の重い繰り返し演算処理などに条件分岐処理が含まれたとき、条件分岐なしの処理としてハードウェアを先行処理し、その演算結果に対して、さらに条件分岐付き処理の演算結果を用いて修正すれば、全体的に処理速度の向上を達成される。特に、条件分岐なしの処理が条件分岐付きの処理の実行頻度よりも高い場合、処理速度の改善効果がより顕著になる。
【0023】
【発明の実施の形態】
図1は本発明に係る演算装置の一実施形態を示す回路図である。
図示のように、本実施形態の演算装置は、構成情報記憶部501、演算データ記憶部502、及び条件分岐なし演算実行部503を含む再構成可能な演算装置50によって構成されている。また、再構成可能な演算装置50に構成情報及び演算データを提供するホストCPU10と共有メモリ20が設けられている。
【0024】
ホストCPU10は、再構成可能な演算装置50にハードウェアの構成情報及び演算データを提供する。構成情報が、再構成可能な演算装置の構成情報記憶部501に転送され、また、演算データが演算データ記憶部502に転送される。
【0025】
共有メモリ20は、再構成可能な演算装置50のハードウェア構成情報及び演算データを記憶する。再構成可能な演算装置50によって演算処理を行う前に、供給メモリ20に記憶されているハードウェア構成情報及び演算データがホストCPU10を介して、または直接に再構成可能な演算装置50の構成情報記憶部501及び演算データ記憶部502に転送される。
【0026】
再構成可能な演算装置50において、構成情報記憶部501は、ホストCPU10などから入力されるハードウェア構成情報を保持し、保持された構成情報を条件分岐なし演算実行部502に出力する。
演算データ記憶部502は、ホストCPU10などから入力される演算データを保持し、保持された演算データを条件分岐なし演算実行部503に提供する。また、条件分岐なし演算実行部503による演算処理の結果が演算データ記憶部502に転送されるので、演算データ記憶部502は、条件分岐なし演算実行部503から入力された演算結果を記憶し、ホストCPU10または共有メモリ20に出力する。
【0027】
本実施形態の再構成可能な演算装置50において、繰り返し演算処理に条件分岐が含まれている場合、当該条件分岐を考慮せず、即ち、条件分岐なしとして演算を行う。まず、構成情報記憶部501に記憶されているハードウェアの構成情報が条件分岐なし演算実行部503に転送され、これに基づいて条件分岐なし演算実行部503にハードウェアの再構成が行われ、それぞれの演算器に所定の演算処理が割り当てられる。
【0028】
そして、条件分岐なし演算実行部503において、条件分岐なしとして、演算データ記憶部502からの演算データに基づいて所望の演算処理が高速に実行される。演算終了後、演算結果が演算データ記憶部502に転送される。次いで、ホストCPU10は、演算データ記憶部502から演算結果を受け取り、分岐条件に従って分岐処理を行い、処理の結果を用いて上記条件分岐なし演算実行部503の演算結果に対し修正を行う。すべての条件分岐に基づいて修正を行った結果、条件分岐を含む演算処理の結果が得られる。
【0029】
図2は、本実施形態の演算装置における演算処理の割り当てを示すフローチャートである。
図示のように、まず、プロファイラを用いて、演算処理の重い箇所の抽出が行われる(ステップS411)。即ち、ソフトウェアの設計ツールなどによって、演算装置に割り当てられる演算処理のうち、処理負荷が重い演算が抽出される。なお、ここで、処理負荷の重さは、例えば、その処理をCPUなどのプロセッサによって実行する場合に必要な処理ステップ数などによって判断することができる。
【0030】
次に、抽出された処理負荷の重い演算に条件分岐付き演算が含まれているか否かが判断される(ステップS412)。当該判断の結果、条件分岐付き演算が含まれている場合、ステップS413に進み、逆に条件分岐付き演算が含まれていない場合、ステップS418に進む。ステップS418において、条件分岐がないため、演算処理が再構成可能演算装置に割り当てられ、さらに割り当てられた演算を実行させるためのハードウェアの構成情報も生成される(ステップS419)。
【0031】
ステップS413において、条件分岐付き演算を条件分岐なしの処理と条件分岐付きの処理に分割可能か否かについて判断が行われる。当該判断の結果、分割可能な場合、ステップS414に進み、逆に分割できない場合、ステップS417に進み、ここで、条件分岐付きの処理が分割できないため、すべての処理がCPUに割り当てられる。
【0032】
ステップS414において、条件分岐付き処理が条件分岐なしの処理と条件分岐付きの処理に分割され、条件分岐なしの処理が再構成可能な演算装置に割り当てられる。そして、割り当てられた演算に応じたハードウェアの構成情報も生成される(ステップS415)。
一方、条件分岐付きの処理がCPUなどに割り当てられる(ステップS416)。
【0033】
上述した割り当て処理により、処理負荷の重い処理に条件分岐が含まれている場合、当該条件分岐処理が分割可能な場合、条件分岐なしの処理と条件分岐付きの処理に分割され、条件分岐なしの処理が再構成可能な演算装置に割り当てられ、条件分岐付きの処理がCPUなどに割り当てられる。また、再構成可能な演算装置に割り当てられた処理を実行させるためのハードウェアの構成情報も生成される。このため、再構成可能な演算装置において、構成情報に基づきハードウェアが再構成され、再構成されたハードウェアにより割り当てられた条件分岐なしの処理を高速に実行できるので、CPUなどの処理負荷を軽減できる。特に、条件分岐なしの処理の頻度が条件分岐付きの処理の頻度よりも高い場合、高速化の効果がより顕著となる。
このため、上述した演算処理の割り当てにおいては、条件分岐なしの処理と条件分岐付きの処理のうち、実行頻度の高い処理が再構成可能な演算装置に割り当てられ、実行頻度の低い処理が、例えば、CPUなどに割り当てられる。これによって、再構成可能なハードウェアを用いて、処理速度の改善効果を高めることができる。
【0034】
次に、上述した割り当て処理によって生成された構成情報などに従って、本実施形態の演算装置における演算処理を説明する。
図3は、本実施形態の演算装置における演算処理を示すフローチャートである。以下、図3を参照しつつ、本実施形態における演算処理について、順を追って説明する。
【0035】
まず、演算データ記憶部が必要に応じて初期化される(ステップS501)、そして、構成情報記憶部が必要に応じて初期化される(ステップS502)。
次いで、ホストCPU10などから演算データが転送され、当該演算データが演算データ記憶部502に記憶される(ステップS503)。
次いで、ホストCPU10などから構成情報が転送され、当該構成情報が構成情報記憶部501に記憶される(ステップS504)。
【0036】
条件分岐なし演算実行部503において、構成情報記憶部501から入力される構成情報に基づき、ハードウェアの再構成が行われる(ステップS505)。ハードウェアの再構成は、例えば、所定の繰り返し演算において、条件分岐をすべて無視して、所定の演算を与えられた回数だけ繰り返して実行するよう行われる。
【0037】
演算データ記憶部502から、演算データが読み出され、当該演算データに基づき、条件分岐なし演算実行部503において、再構成されたハードウェアによって所定の演算処理が実行される(ステップS506)。
そして、演算処理の結果が演算データ記憶部502に書き込まれる(ステップS507)。
【0038】
次に、演算データ記憶部502から演算結果が読み出される(ステップS508)。読み出された演算結果がホストCPU10に転送される。
そして、ホストCPU10などで、条件分岐付き演算処理が実行される(ステップS509)。
【0039】
次いで、ホストCPU10などによる条件分岐付き演算処理の結果が演算データ記憶部502に出力され、演算データ記憶部502によって記憶される。
そして、演算データ記憶部502に記憶されている最終の演算結果が共有メモリ20に出力される。
【0040】
上述したように、本実施形態の演算装置において、繰り返し演算の中の条件分岐をなしとして、再構成可能な演算装置において、再構成されたハードウェアにより、条件分岐せずに繰り返し演算のみが先行して実行される。そして、ホストCPU10によって、条件分岐付きの演算が行われ、当該演算結果によって、上記条件分岐なしで行われた演算の結果に対して修正が行われる。このため、再構成可能なハードウェアによって分岐なし演算が高速に実行できるので、ホストCPU10などの処理負荷を軽減し、処理の高速化を実現可能である。特に、先行実行のあと、ホストCPU10などによる条件付きの演算において、データ書き換えの頻度が低いほど全体として処理量を抑制する効果が大きくなる。
【0041】
次に、本実施形態の演算装置を用いた、条件付き分岐を含む繰り返し演算の一具体例について説明する。
図4は、条件付き分岐処理を含む繰り返し演算処理の一例を示している。なお、図4では、繰り返し処理は、例えば、通常のプログラム言語で「for」文により表される。また、条件付き分岐処理は、プログラム言語で「if」文によって表され、分岐の条件は、「if」文に続く括弧の中で表記されている。
【0042】
図4に示す条件付き分岐処理では、例えば、「分岐1」で示す分岐条件が満たされると、「処理1」が実行され、逆に、「分岐1」で示す分岐条件が満たされず、「分岐2」で示す分岐条件が満たされた場合、「処理2」が実行される。
なお、図4に示すように、分岐条件である「分岐1」を満たす頻度が分岐条件である「分岐2」を満たす頻度より高い。即ち、図4に示す繰り返しループの中、「処理1」が実行される頻度が「処理2」が実行される頻度より高い。
上述した条件付き分岐処理が、所定の繰り返し条件が満たされている間繰り返して実行される。
【0043】
図4に示すように、本実施形態演算装置では、上述した条件付き分岐処理を含む繰り返し演算を条件分岐なし演算と、条件分岐付き演算の2つの演算に分割される。まず、処理頻度の高い「処理1」を含む繰り返し演算を条件分岐なしの繰り返し演算とし、そして、処理頻度の低い「処理2」を含む演算を条件分岐付きの繰り返し演算とする。
【0044】
条件分岐なしとしての繰り返し演算「処理1」は、本実施形態の再構成可能な演算装置50によって実行される。そして、頻度の低い「処理2」の演算がホストCPU10によって実行される。
【0045】
即ち、「処理1」の演算内容に応じて、ホストCPU10により、再構成可能な演算装置50の条件分岐なし演算実行部のハードウェアを再構成するための構成情報が生成される。当該構成情報は、ホストCPU10から再構成可能な演算装置の構成情報記憶部501に転送され、これに基づいて条件分岐なし演算実行部503において、ハードウェアが再構成され、ホストCPU10などから入力される演算データに基づき、「処理1」を条件分岐なしの処理として繰り返し、演算が高速に実行される。
【0046】
そして、「処理1」の繰り返し演算が実行したあと、ホストCPU10などによって、「処理2」の分岐条件である「分岐2」に従って、「処理2」を実行する。そして、分岐条件に従って、当該分岐条件付き「処理2」の演算結果を用いて、上述した条件分岐なしの「処理1」の繰り返し演算の結果を修正する。修正後の結果は、条件分岐付き繰り返し演算の結果となる。
【0047】
上述した処理において、「処理1」の頻度が「処理2」より高い場合、本実施形態の演算装置を用いることにより、再構成可能な演算装置50によって、ハードウェア上で「処理1」の演算を高速に実行することができる。そして、ホストCPU10により、分岐条件に基づき、条件分岐付きで「処理2」を実行し、再構成可能な演算装置50による演算結果を修正する。
【0048】
以上説明したように、本実施形態の演算装置及びその演算方法によれば、条件分岐付きの繰り返し演算が、条件分岐なしの演算と条件分岐付きの演算の2つの部分に分割され、再構成可能な演算装置において、条件分岐なしの演算処理は、それに応じて生成された構成情報に基づき、再構成されたハードウェアによって実行され、そして、その演算結果に対して分岐条件に基づき、ホストCPUなどによる条件分岐付き繰り返し演算の結果で修正するので、ホストCPU10の処理負荷を軽減出来、処理時間の短縮及び処理速度の向上を実現できる。
【0049】
【発明の効果】
以上説明したように、本発明の演算装置及びその演算方法によれば、繰り返し演算など処理負荷の重い演算処理部分を、構成情報に基づいて再構成されたハードウェアによって先行して実行し、そして、ホストCPUによって条件付き分岐処理を実行し、ハードウェアによる演算結果を修正するので、ホストCPUの処理負荷を軽減でき、処理時間の短縮及び処理速度の向上を実現できる。これによって、ハードウェアによる演算後の条件分岐付き処理の出現頻度が低い場合、特に処理速度の改善効果が大きい。
また、本発明によれば、ハードウェアによって、処理負荷の重い演算を高速に実行されるので、CPUによる演算に較べて、演算量を低減できるので、処理時間の短縮と消費電力の低減を実現できる。
さらに、本発明によれば、処理負荷の重い演算をハードウェアに割り当てることによって、CPU側の処理負担が軽減し、ハードウェアの演算時間中に別の演算処理を実現できる利点がある。
【図面の簡単な説明】
【図1】本発明に係る演算装置の一実施形態を示す構成図である。
【図2】本実施形態の演算装置における演算の割り当てを示すフローチャートである。
【図3】本実施形態の演算装置における条件分岐付き処理を示すフローチャートである。
【図4】本実施形態の演算装置における条件分岐付き処理の一例を示す図である。
【図5】従来の再構成可能な演算装置の一例を示す構成図である。
【図6】従来の演算装置の処理を示すフローチャートである。
【図7】従来の演算装置における条件分岐付き処理のフローチャートである。
【符号の説明】
10…ホストCPU、20…共有メモリ、30,50…再構成可能な演算装置、301,501…構成情報記憶部、302,502…演算データ記憶部、303…再構成可能な演算実行部、503…再構成可能な条件分岐なし演算実行部。
Claims (5)
- 条件分岐付き演算処理を実行する演算装置であって、
上記条件分岐付き演算処理を条件分岐なしの第1処理と条件分岐付きの第2の処理に分割し、上記条件分岐なしの第1の処理に応じた構成情報を生成する構成情報生成手段と、
上記構成情報に基づいて再構成をし、演算データに基づいて、上記分割された条件分岐なしの第1の処理を実行する再構成可能な演算手段と、
上記分割された条件分岐付きの第2の処理を行い、当該処理の結果に応じて、上記再構成可能な演算手段の演算結果を修正する演算手段と
を有する演算装置。 - 上記再構成可能な演算手段には、上記構成情報を保持する構成情報保持手段と、
外部から入力される上記演算データを保持する演算データ保持手段と、
上記構成情報に基づき、再構成される複数の演算素子と
を有する請求項1記載の演算装置。 - 上記構成情報生成手段には、上記条件分岐なしの第1の処理の頻度が、上記条件分岐付きの第2の処理の頻度より高くなるように、上記演算処理を分割する分割手段を有する
請求項1記載の演算装置。 - 条件分岐付き演算処理を行う演算方法であって、
上記条件分岐付き演算処理を条件分岐なしの第1処理と条件分岐付きの第2の処理に分割する分割ステップと、
上記分割された条件分岐なしの第1の処理に応じた構成情報を生成する構成情報生成ステップと、
上記構成情報に基づいて再構成し、演算データに基づいて上記分割された条件分岐なしの第1の処理を実行する第1の演算ステップと、
上記分割された条件分岐付きの第2の処理を行い、当該処理の結果に応じて、上記第1の演算ステップの演算結果を修正する第2の演算ステップと
を有する演算方法。 - 上記分割ステップにおいて、上記条件分岐なしの第1処理の頻度が、上記条件分岐付きの第2の処理の頻度より高くなるように、上記演算処理を分割する
請求項4記載の演算方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002226604A JP3736509B2 (ja) | 2002-08-02 | 2002-08-02 | 演算装置及びその演算方法 |
US10/625,871 US7017033B2 (en) | 2002-08-02 | 2003-07-24 | Arithmetic apparatus and arithmetic method |
EP03291947A EP1391829A3 (en) | 2002-08-02 | 2003-08-01 | Arithmetic apparatus and arithmetic method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002226604A JP3736509B2 (ja) | 2002-08-02 | 2002-08-02 | 演算装置及びその演算方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004070524A true JP2004070524A (ja) | 2004-03-04 |
JP2004070524A5 JP2004070524A5 (ja) | 2005-04-07 |
JP3736509B2 JP3736509B2 (ja) | 2006-01-18 |
Family
ID=31185080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002226604A Expired - Fee Related JP3736509B2 (ja) | 2002-08-02 | 2002-08-02 | 演算装置及びその演算方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7017033B2 (ja) |
EP (1) | EP1391829A3 (ja) |
JP (1) | JP3736509B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719550B2 (en) | 2010-03-25 | 2014-05-06 | Fuji Xerox Co., Ltd. | Reconfigurable processing system including synchronized postprocessing |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007207136A (ja) * | 2006-02-06 | 2007-08-16 | Nec Corp | データ処理装置、データ処理方法、及びデータ処理プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11296345A (ja) * | 1998-04-08 | 1999-10-29 | Hitachi Ltd | プロセッサ |
JP2003067183A (ja) * | 2001-08-24 | 2003-03-07 | Matsushita Electric Ind Co Ltd | 半導体集積回路および命令処理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4761755A (en) * | 1984-07-11 | 1988-08-02 | Prime Computer, Inc. | Data processing system and method having an improved arithmetic unit |
US5729757A (en) * | 1985-05-20 | 1998-03-17 | Shekels; Howard D. | Super-computer system architectures using status memory to alter program |
US5440704A (en) * | 1986-08-26 | 1995-08-08 | Mitsubishi Denki Kabushiki Kaisha | Data processor having branch predicting function |
US5202995A (en) * | 1989-10-12 | 1993-04-13 | International Business Machines Corporation | Method for removing invariant branches from instruction loops of a computer program |
US5301344A (en) * | 1991-01-29 | 1994-04-05 | Analogic Corporation | Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets |
US5729726A (en) * | 1995-10-02 | 1998-03-17 | International Business Machines Corporation | Method and system for performance monitoring efficiency of branch unit operation in a processing system |
US6247036B1 (en) * | 1996-01-22 | 2001-06-12 | Infinite Technology Corp. | Processor with reconfigurable arithmetic data path |
US5974435A (en) * | 1997-08-28 | 1999-10-26 | Malleable Technologies, Inc. | Reconfigurable arithmetic datapath |
US6032252A (en) * | 1997-10-28 | 2000-02-29 | Advanced Micro Devices, Inc. | Apparatus and method for efficient loop control in a superscalar microprocessor |
-
2002
- 2002-08-02 JP JP2002226604A patent/JP3736509B2/ja not_active Expired - Fee Related
-
2003
- 2003-07-24 US US10/625,871 patent/US7017033B2/en not_active Expired - Fee Related
- 2003-08-01 EP EP03291947A patent/EP1391829A3/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11296345A (ja) * | 1998-04-08 | 1999-10-29 | Hitachi Ltd | プロセッサ |
JP2003067183A (ja) * | 2001-08-24 | 2003-03-07 | Matsushita Electric Ind Co Ltd | 半導体集積回路および命令処理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719550B2 (en) | 2010-03-25 | 2014-05-06 | Fuji Xerox Co., Ltd. | Reconfigurable processing system including synchronized postprocessing |
Also Published As
Publication number | Publication date |
---|---|
EP1391829A3 (en) | 2007-01-17 |
JP3736509B2 (ja) | 2006-01-18 |
US7017033B2 (en) | 2006-03-21 |
EP1391829A2 (en) | 2004-02-25 |
US20040153485A1 (en) | 2004-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151442B2 (en) | Convolutional neural network processing method and device | |
JP4277042B2 (ja) | 演算処理装置 | |
EP3513281B1 (en) | Vector multiply-add instruction | |
US7120903B2 (en) | Data processing apparatus and method for generating the data of an object program for a parallel operation apparatus | |
US9355061B2 (en) | Data processing apparatus and method for performing scan operations | |
US20160246602A1 (en) | Path selection based acceleration of conditionals in coarse grain reconfigurable arrays (cgras) | |
JP5994679B2 (ja) | 処理装置、及び処理装置の制御方法 | |
JPH04172533A (ja) | 電子計算機 | |
JP6551751B2 (ja) | マルチプロセッサ装置 | |
CN110232665B (zh) | 最大池化方法、装置、计算机设备及存储介质 | |
Omidian et al. | An accelerated OpenVX overlay for pure software programmers | |
JP2004070524A (ja) | 演算装置及びその演算方法 | |
EP3736765A1 (en) | Data processing method and apparatus | |
US20200192631A1 (en) | Fused convolution and batch normalization for neural networks | |
US10001994B2 (en) | Data processing apparatus and method for performing scan operations omitting a further step | |
Caffarena et al. | High-level synthesis of multiple word-length DSP algorithms using heterogeneous-resource FPGAs | |
US20190318056A1 (en) | Method and apparatus for improving boolean satisfibility solver generated based on input design with data qualifier signals | |
US10387155B2 (en) | Controlling register bank access between program and dedicated processors in a processing system | |
CN110716750A (zh) | 用于部分波前合并的方法和系统 | |
JP3989397B2 (ja) | 集積回路装置およびその装置に対するデータ設定装置 | |
WO2017056427A1 (ja) | プログラム書換装置、方法および記憶媒体 | |
JPH0460719A (ja) | 電子計算機、プログラマブル論理回路及びプログラム処理方法 | |
JP3686261B2 (ja) | 計算機、プログラム変換装置及びプログラム記録媒体 | |
CN116225532A (zh) | 一种支持加速向量运算的通用处理器 | |
JP6141073B2 (ja) | 情報処理装置及び情報処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040426 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040426 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050719 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050907 |
|
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: 20051004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051017 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081104 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091104 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091104 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101104 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111104 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121104 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131104 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |