JP6196886B2 - 演算装置 - Google Patents

演算装置 Download PDF

Info

Publication number
JP6196886B2
JP6196886B2 JP2013236904A JP2013236904A JP6196886B2 JP 6196886 B2 JP6196886 B2 JP 6196886B2 JP 2013236904 A JP2013236904 A JP 2013236904A JP 2013236904 A JP2013236904 A JP 2013236904A JP 6196886 B2 JP6196886 B2 JP 6196886B2
Authority
JP
Japan
Prior art keywords
arithmetic
processing
units
operations
period
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
JP2013236904A
Other languages
English (en)
Other versions
JP2015097021A (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.)
Olympus Corp
Original Assignee
Olympus Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Olympus Corp filed Critical Olympus Corp
Priority to JP2013236904A priority Critical patent/JP6196886B2/ja
Priority to US14/537,208 priority patent/US9798305B2/en
Publication of JP2015097021A publication Critical patent/JP2015097021A/ja
Application granted granted Critical
Publication of JP6196886B2 publication Critical patent/JP6196886B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Description

本発明は、演算装置に関する。
LSI設計において、回路の増大を抑えるために、複数の処理から共通の処理を抽出して、その共通の処理を行う回路を共有するリソースシェアリングという手法が一般的に用いられている。この手法では、例えば1つの処理の中に2回の乗算が含まれる場合、それぞれの乗算の実行タイミングをずらすことにより1つの乗算器(リソース)を共有することができる。この処理の実行タイミングの調整はスケジューリングと呼ばれる。
このようなリソースシェアリングの手法において消費電力の低減が望まれている。特許文献1では、スケジューリングにより排他的に動作する処理部のリソースを共有化し、動作しない処理部のクロックを止めることで消費電力を低減する手法が提案されている。
特開2008−282360号公報
実際の回路では、1つの処理に要する期間がユースケース(動作状況)毎に変わることがある。また、低速の処理を行う場合にはピーク電力を抑えたいという要望がある。しかし、特許文献1の手法では、想定されるユースケース内で処理が最速となるスケジューリングに合わせて動作が固定される。このため、ユースケース毎に処理速度が変わる場合でも、消費電力が最速動作時のピーク電力と同じ電力になる問題がある。
図13は、処理が最速となるスケジューリングの例を示している。図13(a)、図13(b)の横軸は時間を示し、図13(a)、図13(b)の縦軸は電力を示している。図13(a)、図13(b)における時間の単位は、回路に供給されるクロックの周期に対応するサイクルである。図13(a)、図13(b)は、4個の乗算器を有する演算装置のスケジューリングの例を示している。
図13(a)は、2サイクルで8回の乗算を行うスケジューリングの例を示している。4個の乗算器が並列に動作する1サイクルの動作が2回繰り返されることにより、2サイクルで8回の乗算が行われる。図13(a)では、8回の乗算が行われる2サイクルが繰り返される様子が示されている。図13(a)では、ピーク電力は、演算装置が有する全ての乗算器が並列に動作するときの電力(Pmax)である。
図13(b)は、4サイクルで8回の乗算を行うスケジューリングの例を示している。処理が最速となるようにスケジューリングが行われるため、2サイクルで4個の乗算器が並列に動作する。これにより、2サイクルで8回の乗算が行われる。4個の乗算器が動作する2サイクルの期間が経過した後、次の2サイクルで4個の乗算器は停止する。図13(b)では、4個の乗算器が並列に動作することにより8回の乗算が行われる2サイクルと、4個の乗算器が停止する2サイクルとが交互に現れる様子が示されている。図13(b)では、ピーク電力は、演算装置が有する全ての乗算器が並列に動作するときの電力(Pmax)である。
上記のように、所定回数の演算を行うサイクル数が変化した場合でも、ピーク電力は、演算装置が有する全ての乗算器が並列に動作するときの電力となる。このため、ピーク電力を抑えることができない。
本発明は、上述した課題に鑑みてなされたものであって、ピーク電力を抑えることができる演算装置を提供することを目的とする。
本発明は、上記の課題を解決するためになされたもので、互いに異なる処理を行う複数の演算処理部と、同一の演算を行う複数の演算器と、処理すべき演算の数と等しい数のデータが、予め設定された処理期間に処理され、かつ、前記処理期間を分割した複数の分割期間に動作する前記演算器の数が平均化されるように、前記複数の分割期間に動作する前記演算器の数を、前記処理期間の長さと前記演算の数とに基づいて制御する制御部と、を有し、前記制御部は、前記複数の分割期間に動作する前記演算器の数を、前記複数の演算処理部から出力されるデータ有効信号から検出された前記処理期間の長さと前記演算の数とに基づいて制御する演算装置である。
また、本発明の演算装置において、前記制御部は、前記処理期間の長さと前記演算の数とが外部から設定されるレジスタを有する。
また、本発明の演算装置において、前記処理期間の長さは、前記複数の演算処理部から出力されるデータ有効信号の2つの有効状態の間隔から検出された時間であり、前記演算の数は、前記データ有効信号の有効状態の数から検出された数である。
また、本発明の演算装置は、前記複数の演算処理部と前記複数の演算器との間のデータの転送を制御し、前記複数の演算処理部から出力されるデータ有効信号から前記処理期間の長さと前記演算の数とを検出する調停部をさらに有する。
本発明によれば、予め設定された処理期間に、処理すべき演算の数と等しい数のデータが処理され、かつ、処理期間を分割した複数の分割期間に動作する演算器の数が平均化されるように、複数の分割期間に動作する演算器の数を、処理期間の長さと演算の数とに基づいて制御することによって、ピーク電力を抑えることができる。
本発明の第1の実施形態による演算装置の構成を示すブロック図である。 本発明の第1の実施形態による演算装置が有する制御部が行うスケジューリングの例を示す参考図である。 本発明の第1の実施形態による演算装置が有する制御部が行うスケジューリングの例を示すタイミングチャートである。 本発明の第1の実施形態による演算装置が有する制御部が行うスケジューリングの例を示すタイミングチャートである。 本発明の第2の実施形態による演算装置の構成を示すブロック図である。 本発明の第2の実施形態による演算装置が有する制御部の動作の手順を示すフローチャートである。 本発明の第2の実施形態による演算装置が有する制御部の動作の手順を示すフローチャートである。 本発明の第2の実施形態による演算装置が有する制御部が行うスケジューリングの例を示す参考図である。 本発明の第2の実施形態による演算装置が有する制御部の動作の手順を示すフローチャートである。 本発明の第2の実施形態による演算装置が有する制御部の動作の手順を示すフローチャートである。 本発明の第2の実施形態による演算装置が有する制御部が行うスケジューリングの例を示す参考図である。 本発明の第2の実施形態による演算装置が有する制御部が行うスケジューリングの例を示す参考図である。 処理が最速となるスケジューリングの例を示す参考図である。
以下、図面を参照し、本発明の実施形態を説明する。以下の実施形態では、リソースシェアリングの手法が用いられる。すなわち、複数の処理のうち、共通する同じ演算が抽出され、共通処理として実装される。また、複数の処理から共通処理を除いた、処理毎に異なる処理が固有処理として実装される。共通処理は、加算、減算、乗算、除算、比較演算、論理演算などである。固有処理は、条件判断処理、代入処理などである。共通処理と固有処理とによって、画像処理などの所定の処理が実現される。
<第1の実施形態>
まず、本発明の第1の実施形態を説明する。図1は、本実施形態による演算装置の構成を示している。図1に示す演算装置は、固有処理部10と、共通処理部20と、制御部30とを有する。
固有処理部10は、互いに異なる処理(条件判断処理、代入処理など)を行う複数の演算処理部10a1,10a2,・・・10am(mは2以上の整数)を有する。共通処理部20は、同一の演算(加算、減算、乗算、除算など)を行う複数の演算器20a1,20a2,・・・20an(nは2以上の整数)を有する。演算処理部10a1,10a2,・・・10amは、自身の処理の中で、共通処理である演算を行う必要があるとき、演算器20a1,20a2,・・・20anにデータを出力し、演算器20a1,20a2,・・・20anから演算結果を受け取る。
制御部30は、処理すべき演算の数と等しい数のデータが、予め設定された処理期間に処理され、かつ、処理期間を分割した複数の分割期間に動作する演算器の数が平均化されるように、複数の分割期間に動作する演算器の数を、処理期間の長さ(以下、処理速度と記載)と演算の数とに基づいて制御する。処理期間は複数の分割期間を含む。分割期間は、例えば回路に供給されるクロックの周期に対応する1サイクルに基づく期間である。1つの分割期間は、例えば1サイクルと等しい。1つの分割期間が複数サイクルと等しくてもよい。
図2は、制御部30が行うスケジューリングの例を示している。図2の横軸は時間を示し、図2の縦軸は電力を示している。図2における時間の単位はサイクルである。図2は、4サイクルで8回の乗算を行うスケジューリングの例を示している。
予め設定された処理期間(本実施形態では2サイクル以上の期間)である4サイクルが、例えば1サイクル毎の4つの分割期間に分割される。制御部30は、それぞれの分割期間に動作する演算器の数(それぞれの分割期間で演算に使用する演算器の数)が平均化されるように、複数の分割期間に動作する演算器の数を制御する。図2では、4つの分割期間(1サイクル)のそれぞれで2個の演算器が並列に動作するようにスケジューリングが行われる。どのサイクルでも2個の演算器が並列に動作するため、4サイクルで8回の乗算が行われる。
本実施形態では、制御部30は、例えば処理すべき演算の数を、処理期間の長さ(所定の数の演算を行う速さに相当)である処理速度で割った数を算出する。算出された数が、分割期間に動作する演算器の数である。図2に示す例では、処理すべき演算の数が8であり、処理速度が4(サイクル)であるため、8を4で割った2が、1サイクルで動作する演算器の数である。また、制御部30は、処理期間の長さ(処理速度)と、処理すべき演算の数とが外部から設定されるレジスタを有する。
制御部30は、予め設定された処理期間の半分よりも長い期間において1個以上の演算器が動作するように、複数の分割期間に動作する演算器の数を制御してもよい。言い換えると、制御部30は、複数の演算器の全てが停止する期間が、予め設定された処理期間の半分よりも短くなるように、複数の分割期間に動作する演算器の数を制御してもよい。制御部30は、予め設定された処理期間のうち、複数の演算器の全てが停止する期間(処理期間の半分よりも短い期間)を除く期間において、その期間を分割した複数の分割期間に動作する演算器の数が平均化されるように、複数の分割期間に動作する演算器の数を制御してもよい。
図3は、制御部30が行うスケジューリングの例を示している。図3には、それぞれの回路に供給されるクロック(CLK)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力される有効信号(データ有効信号)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力されるデータとが示されている。また、図3には、制御部30が決定した、動作する演算器の数が示されている。また、図3には、演算器20a1,20a2のそれぞれに入力されるクロックイネーブル(CLKEN1,CLKEN2)と、演算器20a1,20a2のそれぞれから出力されるデータとが示されている。図3の右方向が時間の進む方向である。
有効信号は矩形波である。有効信号の電圧がHighレベルである場合、有効信号は有効状態である。有効信号の電圧がLowレベルである場合、有効信号は無効状態である(有効状態ではない)。1つの有効状態から次の有効状態までの期間が、予め設定された処理期間である。複数の異なるデータに対応する複数の有効信号が存在する場合、それぞれの有効信号の有効状態から次の有効状態までの期間のうち最小の期間が処理期間である。この処理期間に、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから演算対象のデータ(図3中のA1,B1など)が出力される。
クロックイネーブルは矩形波である。クロックイネーブルの電圧がHighレベルである場合、そのクロックイネーブルが入力される演算器が動作する。クロックイネーブルの電圧がLowレベルである場合、そのクロックイネーブルが入力される演算器が停止する。
図3は、3サイクルで5回の演算(図3に示す例では乗算)を行う例を示している。処理速度(=3)の情報と、処理すべき演算の数(=5)の情報とは、CPU等の外部の構成によって予め制御部30内のレジスタに格納されている。制御部30はレジスタからこれらの情報を読み出し、読み出した情報に基づいて、それぞれのサイクルで動作する演算器の数を決定する。
前述したように、制御部30は、処理すべき演算の数を処理速度で割った数を算出する。5を3で割った商は1.66・・・である。小数は切り上げとなる(小数が切り捨てられ、整数が1増える)。したがって、制御部30は、2個の演算器20a1,20a2が並列に動作するようにスケジューリングを制御する。
2個の演算器20a1,20a2が動作する場合、演算処理部10a1,10a2,10a3から出力されたデータが演算器20a1に入力され、演算処理部10a4,10a5から出力されたデータが演算器20a2に入力される。また、演算器20a1から出力された演算結果が演算処理部10a1,10a2,10a3に入力され、演算器20a2から出力された演算結果が演算処理部10a4,10a5に入力される。例えば制御部30が回路の入力と出力との切替を制御する機能を有している場合、演算処理部10a1,10a2,10a3,10a4,10a5と演算器20a1,20a2との対応関係は、制御部30によって制御される。また、回路の入力と出力の切替を制御するスイッチ(セレクタ)が設けられている場合に、演算処理部10a1,10a2,10a3,10a4,10a5と演算器20a1,20a2との対応関係は、スイッチによって制御される。
制御部30は、3サイクルの処理期間の最初の2サイクルで、演算器20a1,20a2に出力されるクロックイネーブルをHighレベルに設定する。つまり、制御部30は、3サイクルの処理期間の最初の2サイクルで演算器20a1,20a2を動作させる。この結果、最初の2サイクルで4回の乗算が行われる。
1サイクル目では、演算処理部10a1から出力されたデータ(A1,B1)を乗算した結果のデータ(A1*B1)が演算器20a1から出力されると共に、演算処理部10a4から出力されたデータ(G1,H1)を乗算した結果のデータ(G1*H1)が演算器20a2から出力される。2サイクル目では、演算処理部10a2から出力されたデータ(C1,D1)を乗算した結果のデータ(C1*D1)が演算器20a1から出力されると共に、演算処理部10a5から出力されたデータ(I1,J1)を乗算した結果のデータ(I1*J1)が演算器20a2から出力される。
制御部30は、3サイクルの処理期間の最後の1サイクルで、演算器20a1に出力されるクロックイネーブルをHighレベルに設定すると共に、演算器20a2に出力されるクロックイネーブルをLowレベルに設定する。つまり、制御部30は、3サイクルの処理期間の最後の1サイクルで演算器20a1を動作させると共に、演算器20a2を停止させる。この結果、最後の1サイクルで1回の乗算が行われる。3サイクル目では、演算処理部10a3から出力されたデータ(E1,F1)を乗算した結果のデータ(E1*F1)が演算器20a1から出力される。
上記のスケジューリングにより、3サイクルで合計5回の乗算が行われる。3サイクルの処理期間が終了した後、上記と同様のスケジューリングにより演算が行われる。
上記のスケジューリング以外のスケジューリングも可能である。例えば3サイクルの処理期間の1サイクル目で演算器20a1のみが動作し、2サイクル目と3サイクル目で演算器20a1,20a2が動作するようにスケジューリングが行われてもよい。
図4は、6サイクルで5回の演算(図4に示す例では乗算)を行う例を示している。図4には、それぞれの回路に供給されるクロック(CLK)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力される有効信号(データ有効信号)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力されるデータとが示されている。また、図4には、制御部30が決定した、動作する演算器の数が示されている。また、図4には、演算器20a1,20a2のそれぞれに入力されるクロックイネーブル(CLKEN1,CLKEN2)と、演算器20a1,20a2のそれぞれから出力されるデータとが示されている。図4の右方向が時間の進む方向である。
処理速度(=6)の情報と、処理すべき演算の数(=5)の情報とは、CPU等の外部の構成によって予め制御部30内のレジスタに格納されている。制御部30はレジスタからこれらの情報を読み出し、読み出した情報に基づいて、それぞれのサイクルで動作する演算器の数を決定する。
前述したように、制御部30は、処理すべき演算の数を処理速度で割った数を算出する。5を6で割った商は0.83・・・である。小数は切り上げとなる。したがって、制御部30は、1個の演算器20a1のみが動作するようにスケジューリングを制御する。
1個の演算器20a1が動作する場合、演算処理部10a1,10a2,10a3,10a4,10a5から出力されたデータが演算器20a1に入力される。また、演算器20a1から出力された演算結果が演算処理部10a1,10a2,10a3,10a4,10a5に入力される。回路の入力と出力との切替は、制御部30またはスイッチ(セレクタ)によって制御される。
制御部30は、6サイクルの処理期間の最初の5サイクルで、演算器20a1に出力されるクロックイネーブルをHighレベルに設定すると共に、演算器20a2に出力されるクロックイネーブルをLowレベルに設定する。つまり、制御部30は、6サイクルの処理期間の最初の5サイクルで演算器20a1を動作させると共に、演算器20a2を停止させる。この結果、最初の6サイクルで5回の乗算が行われ、乗算が完了する。
1サイクル目では、演算処理部10a1から出力されたデータ(A1,B1)を乗算した結果のデータ(A1*B1)が演算器20a1から出力される。2〜5サイクル目ではそれぞれ、演算処理部10a2,10a3,10a4,10a5から出力されたデータを乗算した結果のデータが演算器20a1から順次出力される。
制御部30は、6サイクルの処理期間の最後の1サイクルで、演算器20a1,20a2に出力されるクロックイネーブルをLowレベルに設定する。つまり、制御部30は、6サイクルの処理期間の最後の1サイクルで演算器20a1,20a2を停止させる。この結果、最後の1サイクルでは乗算が行われない。
上記のスケジューリングにより、6サイクルで合計5回の乗算が行われる。6サイクルの処理期間が終了した後、上記と同様のスケジューリングにより演算が行われる。
上記のスケジューリング以外のスケジューリングも可能である。例えば6サイクルの処理期間の1〜5サイクル目のいずれかで演算器20a1,20a2が停止し、それ以外のサイクルで演算器20a1のみが動作するようにスケジューリングが行われてもよい。
本実施形態によれば、互いに異なる処理を行う複数の演算処理部10a1,10a2,・・・10amと、同一の演算を行う複数の演算器20a1,20a2,・・・20anと、処理すべき演算の数と等しい数のデータが、予め設定された処理期間に処理され、かつ、処理期間を分割した複数の分割期間に動作する演算器の数が平均化されるように、処理期間に動作する演算器の数を、処理期間の長さと演算の数とに基づいて制御する制御部30と、を有する演算装置が構成される。
本実施形態では、予め設定された処理期間に、処理すべき演算の数と等しい数のデータが処理され、かつ、処理期間を分割した複数の分割期間に動作する演算器の数が平均化されるように、複数の分割期間に動作する演算器の数を、処理期間の長さと演算の数とに基づいて制御することによって、ピーク電力を抑えることができる。
<第2の実施形態>
次に、本発明の第2の実施形態を説明する。図5は、本実施形態による演算装置の構成を示している。図5に示す演算装置は、固有処理部10と、共通処理部20と、制御部30と、調停部40とを有する。調停部40以外の構成については既に説明したので、説明を省略する。
調停部40は、複数の演算処理部10a1,10a2,・・・10amと複数の演算器20a1,20a2,・・・20anとの間のデータの転送を制御することにより、データの調停を行う。また、調停部40は、複数の演算処理部10a1,10a2,・・・10amから出力される有効信号(データ有効信号)から、処理期間の長さと、処理すべき演算の数とを検出する。調停部40は、検出した処理期間の長さの情報と、処理すべき演算の数の情報とを制御部30に出力する。また、調停部40は、データの転送に関して、演算処理部10a1,10a2,・・・10amと演算器20a1,20a2,・・・20anとの対応関係を制御してもよい。
制御部30は、処理期間に動作する演算器の数を、複数の演算処理部10a1,10a2,・・・10amから出力される有効信号(データ有効信号)から検出された処理期間の長さと、処理すべき演算の数とに基づいて制御する。すなわち、制御部30は、処理期間に動作する演算器の数を、調停部40によって検出された処理期間の長さと、処理すべき演算の数とに基づいて制御する。制御部30が、調停部40の機能のうち、処理期間の長さと、処理すべき演算の数との少なくとも一方を検出する機能を有していてもよい。
処理期間の長さ(処理速度)は、複数の演算処理部10a1,10a2,・・・10amから出力される有効信号(データ有効信号)の2つの有効状態の間隔から検出された時間である。また、処理すべき演算の数は、複数の演算処理部10a1,10a2,・・・10amから出力される有効信号(データ有効信号)の有効状態の数(複数の有効信号のそれぞれの有効状態の数の合計)から検出された数である。
図6、図7は、制御部30の動作の手順の例を示している。また、図8は、制御部30が行うスケジューリングの例を示している。図8には、それぞれの回路に供給されるクロック(CLK)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力されて調停部40に入力される有効信号(データ有効信号)と、後述する演算有効期間とが示されている。また、図8には、制御部30が管理する数(演算器の最大数、動作する演算器の数)が示されている。図8の右方向が時間の進む方向である。
図6、図7、図8を参照し、制御部30の動作を説明する。図6、図7は、制御部30を構成する組合せ回路が行う処理の内容をフローチャートとして示している。図6、図7は、演算器が1サイクルで1回の演算を行う場合に対応する。
(ステップS100)
CPU等の外部の構成により、制御部30内部のレジスタに対して値が設定される。これにより、演算器の最大数が所定の最大値(Max)に設定され、処理速度が初期設定値に設定され、終了している演算数(以下、終了演算数と記載)が0に設定される。演算器の最大数は、動作可能な演算器の最大数である。Maxは、例えば演算装置が有する演算器の全体の数である。終了演算数は、演算が行われる毎に増える。
(ステップS101)
制御部30は、調停部40から出力された情報に基づいて処理速度を検出する。制御部30は、検出した処理速度が、前回検出した処理速度から変化したか否かを確認する。処理速度が変化した場合、処理はステップS102に進む。処理速度が変化していない場合、処理はステップS103に進む。図6に示す処理が開始されてから初めて処理速度が検出された場合、処理はステップS102に進む。
(ステップS102)
制御部30は、以下の(1)式により演算可能数を算出する。演算可能数は、処理期間に実行可能な演算の数である。
演算可能数=演算器の最大数×処理速度 ・・・(1)
また、制御部30は、サイクル数を管理するための変数であるunit_timeを、処理速度から1を引いた値に設定すると共に、変更フラグを1に設定する。
(ステップS103)
制御部30は、調停部40から出力された情報に基づいて演算有効期間を検出する。制御部30は、検出した演算有効期間が、前回検出した演算有効期間から変化したか否かを確認する。演算有効期間が変化した場合、処理はステップS104に進む。演算有効期間が変化していない場合、処理はステップS105に進む。図6に示す処理が開始されてから初めて処理速度が検出された場合、処理はステップS104に進む。
演算有効期間は、処理期間に処理すべき演算の数を示している。図8において、例えばそれぞれの有効信号の3サイクルにおける有効状態の数(サイクル数)の合計が演算有効期間となる。最初の3サイクルでは、有効信号1,2,5がそれぞれ1サイクルずつ有効状態であり、有効信号3,4は無効状態である。このため、演算有効期間は3である。有効信号は演算対象のデータを示している。有効信号1,2,5が有効状態となるため、演算処理部10a1,10a2,10a5から演算対象のデータが出力される。つまり、3サイクルのデータに対して演算が必要であることが分かる。演算有効期間は、この演算に必要な期間(処理すべき演算の数と等価)を示している。
(ステップS104)
制御部30は、残りの演算数を、演算有効期間から終了演算数を引いた値に設定すると共に、変更フラグを1に設定する。残りの演算数は、必要な演算の数を示している。残りの演算数は、演算が行われる毎に減る。
(ステップS105)
制御部30は、変更フラグが1であるか否かを判断する。変更フラグが1である場合、処理はステップS106に進む。変更フラグが1でない場合、処理はステップS109に進む。
(ステップS106)
制御部30は、演算に必要な演算器の数が多い、あるいは少ないかを判断する。以下の(2)式の条件が満たされる場合、演算に必要な演算器の数が多いため、処理がステップS107に進み、演算器の最大数が変更される。
演算有効期間≦演算可能数−処理速度 ・・・(2)
以下の(3)式の条件が満たされる場合、演算に必要な演算器の数が少ないため、処理がステップS107に進み、演算器の最大数が変更される。
演算有効期間>演算可能数 ・・・(3)
(2)式、(3)式のいずれの条件も満たされない場合、処理がステップS108に進む。
(ステップS107)
制御部30は、以下の(4)式により、演算器の最大数を算出する。
演算器の最大数=RU(演算有効期間/処理速度) ・・・(4)
(4)式のRUは、小数を切り上げる(小数を切り捨て、整数を1増やす)ことを意味している。
(ステップS108)
制御部30は変更フラグを0に設定する。
(ステップS109)
制御部30は、残りの演算数が0であるか否かを判断することにより、演算が必要であるか否かを判断する。残りの演算数が0でない場合、演算が必要であるため、処理がステップS110に進む。残りの演算数が0である場合、演算が必要でないため、処理がステップS116に進む。
(ステップS110)
制御部30は、残りの演算数と演算器の最大数とを比較することにより、一部の演算器を停止するか否かを判断する。残りの演算数が演算器の最大数よりも小さい場合、一部の演算器を停止するため、処理がステップS111に進む。残りの演算数が演算器の最大数以上である場合、演算器は停止せず、処理がステップS112に進む。
(ステップS111)
制御部30は、動作する演算器の数を、演算器の最大数から1を引いた値に設定する。次の1サイクルでは、設定された演算器の数と同じ数の演算器に、Highレベルのクロックイネーブルが出力される。この後、処理がステップS113に進む。
(ステップS112)
制御部30は、動作する演算器の数を演算器の最大数に設定する。次の1サイクルでは、設定された演算器の数と同じ数の演算器に、Highレベルのクロックイネーブルが出力される。この後、処理がステップS113に進む。
(ステップS113)
制御部30は、演算時間を管理する変数であるcalc_latencyを、演算所要時間から1引いた値に設定する。演算所要時間は、演算器が1回の演算に要するサイクル数である。本例では、演算所要時間は1サイクルであるため、calc_latencyは0に設定される。
(ステップS114)
calc_latencyが0になるまで、以下の処理が繰り返される。制御部30は、unit_timeを1減らす。また、制御部30は、1サイクルが経過するのを待つ。calc_latencyの判定は、1サイクルが経過した後に行われる。例えば、ステップS113でcalc_latencyが0となり、ステップS114でunit_timeが1減ると共に1サイクルが経過する。その後、calc_latencyが0であることが確認され、ステップS114の処理が終了する。
(ステップS115)
制御部30は、残りの演算数を、現在の残りの演算数から演算器の最大数を引いた値に設定すると共に、終了演算数を、現在の終了演算数に、動作する演算器の数を加えた値に設定する。この後、処理がステップS118に進む。
(ステップS116)
制御部30は、動作する演算器の数を0に設定する。次の1サイクルでは、全ての演算器に、Lowレベルのクロックイネーブルが出力される。
(ステップS117)
unit_timeが0になるまで、以下の処理が行われる。制御部30は、unit_timeを1減らす。また、制御部30は、1サイクルが経過するのを待つ。この後、処理がステップS101に進む。ステップS117では、unit_timeが減った数と同じ数のサイクルが経過する。unit_timeの判定は、1サイクルが経過した後に行われる。例えば、unit_timeがk(k≧1)である場合、ステップS114でunit_timeがk減ると共にkサイクルが経過する。その後、unit_timeが0であることが確認され、ステップS117の処理が終了する。この後、処理がステップS118に進む。
(ステップS118)
制御部30は、unit_timeが0であるか否かを判断する。unit_timeが0である場合、処理はステップS119に進む。unit_timeが0でない場合、処理はステップS101に進む。
(ステップS119
制御部30は、残りの演算数を、現在の残りの演算数に演算有効期間を加えた値に設定すると共に、終了演算数を0に設定する。この後、処理がステップS101に進む。
図8に示すスケジューリングを説明する。処理速度は3サイクルである。最初の処理期間に3つの有効信号1,2,5が有効状態となるため、演算有効期間は3サイクルである。以下では、最初の処理期間(3サイクル)の処理を説明する。
(1サイクル目)
演算器の最大数が、例えば5に設定され、処理速度が3に設定されるため(ステップS100に対応)、演算可能数は15となる(ステップS102に対応)。また、残りの演算数は3となる(ステップS104に対応)。
(2)式の条件が満たされるため、(4)式により、演算器の最大数は1となる(ステップS107に対応)。残りの演算数(=3)が0でなく(ステップS109に対応)、残りの演算数(=3)が演算器の最大数(=1)よりも大きいため(ステップS110に対応)、動作する演算器の数は1となる(ステップS112に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が2となると共に、終了演算数が1となる(ステップS115に対応)。
(2サイクル目)
処理速度と演算有効期間とは、変化していない。残りの演算数(=2)が0でなく(ステップS109に対応)、残りの演算数(=2)が演算器の最大数(=1)よりも大きいため(ステップS110に対応)、動作する演算器の数は1のままである(ステップS112に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が1となると共に、終了演算数が2となる(ステップS115に対応)。
(3サイクル目)
処理速度と演算有効期間とは、変化していない。残りの演算数(=1)が0でなく(ステップS109に対応)、残りの演算数(=1)が演算器の最大数(=1)と等しいため(ステップS110に対応)、動作する演算器の数は1のままである(ステップS112に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が0となると共に、終了演算数が3となる(ステップS115に対応)。また、残りの演算数が3となると共に、終了演算数が0となる(ステップS119に対応)。
最初の処理期間以降、3サイクルの各処理期間において、上記の処理と同様の処理が行われる。
図8に示すように、最初の処理期間以降の処理期間の中で有効信号3が有効状態となることにより、演算有効期間が3から4に変更される。以下では、この場合の処理期間(3サイクル)の処理を説明する。
(1サイクル目)
動作する演算器の数は、前のサイクルと同じ1である。処理速度は、前のサイクルと同じ3である。演算有効期間は、前のサイクルと同じ3である。残りの演算数は、直前の処理期間の3サイクル目で3に設定されている(ステップS119に対応)。
残りの演算数(=3)が0でなく(ステップS109に対応)、残りの演算数(=3)が演算器の最大数(=1)よりも大きいため(ステップS110に対応)、動作する演算器の数は1のままである(ステップS112に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が2となると共に、終了演算数が1となる(ステップS115に対応)。
(2サイクル目)
処理速度は変化していない。演算有効期間は4サイクルに変化するため(ステップS103に対応)、残りの演算数が3に設定される(ステップS104に対応)。
演算可能数は15のままであり、(2)式の条件が満たされるため、(4)式により、演算器の最大数は2となる(ステップS107に対応)。残りの演算数(=3)が0でなく(ステップS109に対応)、残りの演算数(=3)が演算器の最大数(=2)よりも大きいため(ステップS110に対応)、動作する演算器の数は2となる(ステップS112に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が1となると共に、終了演算数が3となる(ステップS115に対応)。
(3サイクル目)
処理速度と演算有効期間とは、変化していない。残りの演算数(=1)が0でなく(ステップS109に対応)、残りの演算数(=1)が演算器の最大数(=2)よりも小さいため(ステップS110に対応)、動作する演算器の数は1となる(ステップS111に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が0となると共に、終了演算数が4となる(ステップS115に対応)。また、残りの演算数が4となると共に、終了演算数が0となる(ステップS119に対応)。
上記の動作では、処理期間に動作する演算器の数が、有効信号から検出された情報(処理期間の長さ、処理すべき演算の数)に基づいて制御されるため、1サイクル単位で演算器の数を制御することができる。つまり、動的に演算器の数を制御することができる。
図9、図10は、制御部30の動作の手順の他の例を示している。図9、図10は、演算器が複数サイクルで1回の演算を行う場合に対応する。
図9、図10において、図6、図7に示す処理と同一の処理には同一の符号が付与されている。以下では、図6、図7に示す処理と異なる処理のみについて説明する。図6におけるステップS102が図9におけるステップS102aに変更され、図6におけるステップS107が図9におけるステップS107aに変更され、図7におけるステップS114が図10におけるステップS114aに変更される。
(ステップS102a)
制御部30は、以下の(5)式により演算器の処理回数を算出する。演算器の処理回数は、処理期間に演算器が演算を行う回数である。
演算器の処理回数=RD(処理速度/演算所要時間) ・・・(5)
(5)式のRDは、小数を切り捨てることを意味している。
また、制御部30は、以下の(6)式により演算可能数を算出する。
演算可能数=演算器の最大数×演算器の処理回数 ・・・(6)
また、制御部30は、処理速度を管理するための変数であるunit_timeを、処理速度から1を引いた値に設定すると共に、変更フラグを1に設定する。
(ステップS107a)
制御部30は、以下の(7)式により、演算器の最大数を算出する。
演算器の最大数=RU(演算有効期間/演算器の処理回数) ・・・(7)
(7)式のRUは、小数を切り上げる(小数を切り捨て、整数を1増やす)ことを意味している。
(ステップS114a)
calc_latencyが0でない間、以下の処理が行われる。制御部30は、unit_timeを1減らすと共に、calc_latencyを1減らす。また、制御部30は、1サイクルが経過するのを待つ。
図11は、制御部30が行うスケジューリングの例を示している。図11には、それぞれの回路に供給されるクロック(CLK)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力される有効信号(データ有効信号)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力されるデータとが示されている。また、図11には、制御部30が管理する数(残りの演算数、演算器の最大数、動作する演算器の数)が示されている。また、図11には、演算器20a1,20a2,20a3,20a4,20a5のそれぞれに入力されるクロックイネーブル(CLKEN1,CLKEN2,CLKEN3,CLKEN4,CLKEN5)と、演算器20a1,20a2,20a3,20a4,20a5のそれぞれから出力されるデータとが示されている。図11の右方向が時間の進む方向である。
図11は、3サイクルで演算(図11に示す例では乗算)を行う例を示している。演算器20a1,20a2,20a3,20a4,20a5は、2サイクルで1回の乗算を行う。以下では、最初の処理期間(3サイクル)の処理を説明する。
(1サイクル目)
全ての演算処理部10a1,10a2,10a3,10a4,10a5から出力される有効信号が有効状態となるため、演算有効期間は5サイクルである。演算器の最大数が5に設定され、処理速度が3に設定される(ステップS100に対応)。処理速度が3であり、演算所要時間が2であるため、演算器の処理回数は1となる(ステップS102aに対応)。このため、演算可能数は5となる(ステップS102aに対応)。また、残りの演算数は5となる(ステップS104に対応)。
演算有効期間と演算可能数とが等しいため(ステップS106)、演算器の最大数は変更されない。残りの演算数(=5)が0でなく(ステップS109に対応)、残りの演算数(=5)が演算器の最大数(=5)と等しいため(ステップS110に対応)、動作する演算器の数は5となる(ステップS112に対応)。演算所要時間が2であるため、calc_latencyは1に設定される(ステップS113に対応)。2サイクルが経過した後(ステップS114aに対応)、残りの演算数が0となると共に、終了演算数が5となる(ステップS115に対応)。
(3サイクル目)
処理速度と演算有効期間とは、変化していない。残りの演算数が0であるため(ステップS109に対応)、動作する演算器の数は0となる(ステップS116に対応)。3サイクル目ではunit_timeは0になっている。1サイクルが経過した後(ステップS117に対応)、残りの演算数が5となると共に、終了演算数が0となる(ステップS119に対応)。その後、次の処理期間(3サイクル)の処理が行われる。
制御部30は、3サイクルの処理期間の最初の2サイクルで、演算器20a1,20a2,20a3,20a4,20a5のそれぞれに出力されるクロックイネーブルをHighレベルに設定する。つまり、制御部30は、3サイクルの処理期間の最初の2サイクルで演算器20a1,20a2,20a3,20a4,20a5を動作させる。この結果、最初の2サイクルで5回の乗算が行われ、乗算が完了する。
制御部30は、3サイクルの処理期間の最後の1サイクルで、演算器20a1,20a2,20a3,20a4,20a5のそれぞれに出力されるクロックイネーブルをLowレベルに設定する。つまり、制御部30は、3サイクルの処理期間の最後の1サイクルで演算器20a1,20a2,20a3,20a4,20a5を停止させる。この結果、最後の1サイクルでは乗算が行われない。
上記のスケジューリングにより、3サイクルで合計5回の乗算が行われる。最初の処理期間が終了した後、上記と同様のスケジューリングにより演算が行われる。
図12は、7サイクルで演算(図12に示す例では乗算)を行う例を示している。図12には、それぞれの回路に供給されるクロック(CLK)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力される有効信号(データ有効信号)と、演算処理部10a1,10a2,10a3,10a4,10a5のそれぞれから出力されるデータとが示されている。また、図12には、制御部30が管理する数(残りの演算数、演算器の最大数、動作する演算器の数)が示されている。また、図12には、演算器20a1,20a2,20a3,20a4,20a5のそれぞれに入力されるクロックイネーブル(CLKEN1,CLKEN2,CLKEN3,CLKEN4,CLKEN5)と、演算器20a1,20a2,20a3,20a4,20a5のそれぞれから出力されるデータとが示されている。図12の右方向が時間の進む方向である。
演算器20a1,20a2,20a3,20a4,20a5は、2サイクルで1回の乗算を行う。以下では、最初の処理期間(7サイクル)の処理を説明する。
(1サイクル目)
全ての演算処理部10a1,10a2,10a3,10a4,10a5から出力される有効信号が有効状態となるため、演算有効期間は5サイクルである。演算器の最大数が5に設定され、処理速度が7に設定される(ステップS100に対応)。処理速度が7であり、演算所要時間が2であるため、演算器の処理回数は3となる(ステップS102aに対応)。このため、演算可能数は15となる(ステップS102aに対応)。また、残りの演算数は5となる(ステップS104に対応)。
(2)式の条件が満たされるため(ステップS106)、(7)式により、演算器の最大数は2となる(ステップS107aに対応)。残りの演算数(=5)が0でなく(ステップS109に対応)、残りの演算数(=5)が演算器の最大数(=2)よりも大きいため(ステップS110に対応)、動作する演算器の数は2となる(ステップS112に対応)。演算所要時間が2であるため、calc_latencyは1に設定される(ステップS113に対応)。2サイクルが経過した後(ステップS114aに対応)、残りの演算数が3となると共に、終了演算数が2となる(ステップS115に対応)。
(3サイクル目)
処理速度と演算有効期間とは、変化していない。残りの演算数(=3)が0でなく(ステップS109に対応)、残りの演算数(=3)が演算器の最大数(=2)よりも大きいため(ステップS110に対応)、動作する演算器の数は2となる(ステップS112に対応)。演算所要時間が2であるため、calc_latencyは1に設定される(ステップS113に対応)。2サイクルが経過した後(ステップS114aに対応)、残りの演算数が1となると共に、終了演算数が4となる(ステップS115に対応)。
(5サイクル目)
処理速度と演算有効期間とは、変化していない。残りの演算数(=1)が0でなく(ステップS109に対応)、残りの演算数(=1)が演算器の最大数(=2)よりも小さいため(ステップS110に対応)、動作する演算器の数は1となる(ステップS111に対応)。演算所要時間が2であるため、calc_latencyは1に設定される(ステップS113に対応)。2サイクルが経過した後(ステップS114aに対応)、残りの演算数が0となると共に、終了演算数が5となる(ステップS115に対応)。
(7サイクル目)
処理速度と演算有効期間とは、変化していない。残りの演算数が0であるため(ステップS109に対応)、動作する演算器の数は0となる(ステップS116に対応)。7サイクル目ではunit_timeは0になっている。1サイクルが経過した後(ステップS117に対応)、残りの演算数が5となると共に、終了演算数が0となる(ステップS119に対応)。その後、次の処理期間(7サイクル)の処理が行われる。
制御部30は、7サイクルの処理期間の最初の4サイクルで、演算器20a1,20a2のそれぞれに出力されるクロックイネーブルをHighレベルに設定すると共に、演算器20a3,20a4,20a5に出力されるクロックイネーブルをLowレベルに設定する。つまり、制御部30は、7サイクルの処理期間の最初の4サイクルで演算器20a1,20a2を動作させると共に、演算器20a3,20a4,20a5を停止させる。この結果、最初の4サイクルで4回の乗算が行われる。
制御部30は、7サイクルの処理期間の次の2サイクルで、演算器20a1に出力されるクロックイネーブルをHighレベルに設定すると共に、演算器20a2,20a3,20a4,20a5に出力されるクロックイネーブルをLowレベルに設定する。つまり、制御部30は、7サイクルの処理期間の次の2サイクルで演算器20a1を動作させると共に、演算器20a2,20a3,20a4,20a5を停止させる。この結果、次の2サイクルで1回の乗算が行われる。この時点までに5回の乗算が行われる。つまり、乗算が完了する。
制御部30は、7サイクルの処理期間の最後の1サイクルで、演算器20a1,20a2,20a3,20a4,20a5のそれぞれに出力されるクロックイネーブルをLowレベルに設定する。つまり、制御部30は、7サイクルの処理期間の最後の1サイクルで演算器20a1,20a2,20a3,20a4,20a5を停止させる。この結果、最後の1サイクルでは乗算が行われない。
上記のスケジューリングにより、7サイクルで合計5回の乗算が行われる。最初の処理期間が終了した後、上記と同様のスケジューリングにより演算が行われる。
本実施形態では、処理期間に動作する演算器の数が、有効信号から検出された情報(処理期間の長さ、処理すべき演算の数)に基づいて制御されるため、1サイクル単位で動的に演算器の数を制御することができる。したがって、ピーク電力を抑える制御を、演算の対象となるデータの状況に応じて動的に行うことができる。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
10 固有処理部、20 共通処理部、30 制御部、40 調停部

Claims (4)

  1. 互いに異なる処理を行う複数の演算処理部と、
    同一の演算を行う複数の演算器と、
    処理すべき演算の数と等しい数のデータが、予め設定された処理期間に処理され、かつ、前記処理期間を分割した複数の分割期間に動作する前記演算器の数が平均化されるように、前記複数の分割期間に動作する前記演算器の数を、前記処理期間の長さと前記演算の数とに基づいて制御する制御部と、
    を有し、
    前記制御部は、前記複数の分割期間に動作する前記演算器の数を、前記複数の演算処理部から出力されるデータ有効信号から検出された前記処理期間の長さと前記演算の数とに基づいて制御する
    演算装置。
  2. 前記制御部は、前記処理期間の長さと前記演算の数とが外部から設定されるレジスタを有する請求項1に記載の演算装置。
  3. 前記処理期間の長さは、前記複数の演算処理部から出力されるデータ有効信号の2つの有効状態の間隔から検出された時間であり、
    前記演算の数は、前記データ有効信号の有効状態の数から検出された数である請求項に記載の演算装置。
  4. 前記複数の演算処理部と前記複数の演算器との間のデータの転送を制御し、前記複数の演算処理部から出力されるデータ有効信号から前記処理期間の長さと前記演算の数とを検出する調停部をさらに有する請求項に記載の演算装置。
JP2013236904A 2013-11-15 2013-11-15 演算装置 Expired - Fee Related JP6196886B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013236904A JP6196886B2 (ja) 2013-11-15 2013-11-15 演算装置
US14/537,208 US9798305B2 (en) 2013-11-15 2014-11-10 Calculation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013236904A JP6196886B2 (ja) 2013-11-15 2013-11-15 演算装置

Publications (2)

Publication Number Publication Date
JP2015097021A JP2015097021A (ja) 2015-05-21
JP6196886B2 true JP6196886B2 (ja) 2017-09-13

Family

ID=53174069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013236904A Expired - Fee Related JP6196886B2 (ja) 2013-11-15 2013-11-15 演算装置

Country Status (2)

Country Link
US (1) US9798305B2 (ja)
JP (1) JP6196886B2 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US10512575B2 (en) * 2007-02-06 2019-12-24 Deka Products Limited Partnership Dynamic support apparatus
JP4485370B2 (ja) * 2005-01-06 2010-06-23 三菱電機株式会社 並列計算装置
JP4676888B2 (ja) * 2005-01-25 2011-04-27 パナソニック株式会社 データ処理装置
JP4476876B2 (ja) * 2005-06-10 2010-06-09 三菱電機株式会社 並列計算装置
JP2008282360A (ja) 2007-05-14 2008-11-20 Toshiba Corp 低消費電力回路用高位合成装置及び高位合成方法及びそのプログラム
US9442470B2 (en) * 2008-06-06 2016-09-13 Saudi Arabian Oil Company Methods for planning and retrofit of energy efficient eco-industrial parks through inter-time-inter-systems energy integration
US20110071873A1 (en) * 2009-09-01 2011-03-24 Edward Vaughan Method and apparatus for mitigating aviation risk by analyzing and modeling air crew fatigue
JP5549473B2 (ja) * 2010-08-13 2014-07-16 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US20120143356A1 (en) * 2010-09-02 2012-06-07 Pepperdash Technology Corporation Automated facilities management system
WO2014010007A1 (ja) * 2012-07-09 2014-01-16 株式会社日立製作所 情報処理システムおよびグラフ処理方法

Also Published As

Publication number Publication date
JP2015097021A (ja) 2015-05-21
US20150142136A1 (en) 2015-05-21
US9798305B2 (en) 2017-10-24

Similar Documents

Publication Publication Date Title
KR100909510B1 (ko) 감소된 대역폭 요건들을 갖는 행렬 곱셈
KR102211011B1 (ko) 동적 가변 정밀도 계산
JP5518087B2 (ja) 範囲検出を行うための命令及びロジック
US9996345B2 (en) Variable length execution pipeline
WO2018017785A2 (en) Controlling the operating speed of stages of an asynchronous pipeline
Loi et al. High performance scalable elliptic curve cryptosystem processor for Koblitz curves
GB2554167B (en) Approximating functions
JP6196886B2 (ja) 演算装置
CN114924796A (zh) 再生逻辑块以实现提高的吞吐量
Angerer et al. A fast, hybrid, power-efficient high-precision solver for large linear systems based on low-precision hardware
CN104123431A (zh) 一种元素的模逆计算方法及装置
JP6123832B2 (ja) マルチコアプロセッサ、電力制御方法、プログラム
JP2007200180A (ja) プロセッサシステム
Del Barrio et al. Exploring the energy efficiency of multispeculative adders
JP6381019B2 (ja) 情報処理装置及び制御方法
EP2953253A1 (en) Inverter control device and peripheral device thereof
JP2013222364A (ja) 信号処理回路
Reymond et al. A hardware pipelined architecture of a scalable Montgomery modular multiplier over GF (2 m)
CN113515063B (zh) 多核心处理器电路
JP2014164659A (ja) プロセッサ
Carroll et al. A queuing model for CPU functional unit and issue queue configuration
JP2011059869A (ja) サーボモータ制御用のパイプライン構造を備えた演算処理装置
JP5701930B2 (ja) 半導体装置
Andrzejczak An Improved Architecture of a Hardware Accelerator for Factoring Integers with Elliptic Curve Method
US8719615B2 (en) Semiconductor device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170721

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170821

R151 Written notification of patent or utility model registration

Ref document number: 6196886

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees