JP6196886B2 - 演算装置 - Google Patents
演算装置 Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 claims description 220
- 238000000034 method Methods 0.000 claims description 58
- 230000007423 decrease Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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, look ahead
-
- 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent 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
まず、本発明の第1の実施形態を説明する。図1は、本実施形態による演算装置の構成を示している。図1に示す演算装置は、固有処理部10と、共通処理部20と、制御部30とを有する。
次に、本発明の第2の実施形態を説明する。図5は、本実施形態による演算装置の構成を示している。図5に示す演算装置は、固有処理部10と、共通処理部20と、制御部30と、調停部40とを有する。調停部40以外の構成については既に説明したので、説明を省略する。
CPU等の外部の構成により、制御部30内部のレジスタに対して値が設定される。これにより、演算器の最大数が所定の最大値(Max)に設定され、処理速度が初期設定値に設定され、終了している演算数(以下、終了演算数と記載)が0に設定される。演算器の最大数は、動作可能な演算器の最大数である。Maxは、例えば演算装置が有する演算器の全体の数である。終了演算数は、演算が行われる毎に増える。
制御部30は、調停部40から出力された情報に基づいて処理速度を検出する。制御部30は、検出した処理速度が、前回検出した処理速度から変化したか否かを確認する。処理速度が変化した場合、処理はステップS102に進む。処理速度が変化していない場合、処理はステップS103に進む。図6に示す処理が開始されてから初めて処理速度が検出された場合、処理はステップS102に進む。
制御部30は、以下の(1)式により演算可能数を算出する。演算可能数は、処理期間に実行可能な演算の数である。
演算可能数=演算器の最大数×処理速度 ・・・(1)
また、制御部30は、サイクル数を管理するための変数であるunit_timeを、処理速度から1を引いた値に設定すると共に、変更フラグを1に設定する。
制御部30は、調停部40から出力された情報に基づいて演算有効期間を検出する。制御部30は、検出した演算有効期間が、前回検出した演算有効期間から変化したか否かを確認する。演算有効期間が変化した場合、処理はステップS104に進む。演算有効期間が変化していない場合、処理はステップS105に進む。図6に示す処理が開始されてから初めて処理速度が検出された場合、処理はステップS104に進む。
制御部30は、残りの演算数を、演算有効期間から終了演算数を引いた値に設定すると共に、変更フラグを1に設定する。残りの演算数は、必要な演算の数を示している。残りの演算数は、演算が行われる毎に減る。
制御部30は、変更フラグが1であるか否かを判断する。変更フラグが1である場合、処理はステップS106に進む。変更フラグが1でない場合、処理はステップS109に進む。
制御部30は、演算に必要な演算器の数が多い、あるいは少ないかを判断する。以下の(2)式の条件が満たされる場合、演算に必要な演算器の数が多いため、処理がステップS107に進み、演算器の最大数が変更される。
演算有効期間≦演算可能数−処理速度 ・・・(2)
以下の(3)式の条件が満たされる場合、演算に必要な演算器の数が少ないため、処理がステップS107に進み、演算器の最大数が変更される。
演算有効期間>演算可能数 ・・・(3)
(2)式、(3)式のいずれの条件も満たされない場合、処理がステップS108に進む。
制御部30は、以下の(4)式により、演算器の最大数を算出する。
演算器の最大数=RU(演算有効期間/処理速度) ・・・(4)
(4)式のRUは、小数を切り上げる(小数を切り捨て、整数を1増やす)ことを意味している。
制御部30は変更フラグを0に設定する。
制御部30は、残りの演算数が0であるか否かを判断することにより、演算が必要であるか否かを判断する。残りの演算数が0でない場合、演算が必要であるため、処理がステップS110に進む。残りの演算数が0である場合、演算が必要でないため、処理がステップS116に進む。
制御部30は、残りの演算数と演算器の最大数とを比較することにより、一部の演算器を停止するか否かを判断する。残りの演算数が演算器の最大数よりも小さい場合、一部の演算器を停止するため、処理がステップS111に進む。残りの演算数が演算器の最大数以上である場合、演算器は停止せず、処理がステップS112に進む。
制御部30は、動作する演算器の数を、演算器の最大数から1を引いた値に設定する。次の1サイクルでは、設定された演算器の数と同じ数の演算器に、Highレベルのクロックイネーブルが出力される。この後、処理がステップS113に進む。
制御部30は、動作する演算器の数を演算器の最大数に設定する。次の1サイクルでは、設定された演算器の数と同じ数の演算器に、Highレベルのクロックイネーブルが出力される。この後、処理がステップS113に進む。
制御部30は、演算時間を管理する変数であるcalc_latencyを、演算所要時間から1引いた値に設定する。演算所要時間は、演算器が1回の演算に要するサイクル数である。本例では、演算所要時間は1サイクルであるため、calc_latencyは0に設定される。
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の処理が終了する。
制御部30は、残りの演算数を、現在の残りの演算数から演算器の最大数を引いた値に設定すると共に、終了演算数を、現在の終了演算数に、動作する演算器の数を加えた値に設定する。この後、処理がステップS118に進む。
制御部30は、動作する演算器の数を0に設定する。次の1サイクルでは、全ての演算器に、Lowレベルのクロックイネーブルが出力される。
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に進む。
制御部30は、unit_timeが0であるか否かを判断する。unit_timeが0である場合、処理はステップS119に進む。unit_timeが0でない場合、処理はステップS101に進む。
制御部30は、残りの演算数を、現在の残りの演算数に演算有効期間を加えた値に設定すると共に、終了演算数を0に設定する。この後、処理がステップS101に進む。
演算器の最大数が、例えば5に設定され、処理速度が3に設定されるため(ステップS100に対応)、演算可能数は15となる(ステップS102に対応)。また、残りの演算数は3となる(ステップS104に対応)。
処理速度と演算有効期間とは、変化していない。残りの演算数(=2)が0でなく(ステップS109に対応)、残りの演算数(=2)が演算器の最大数(=1)よりも大きいため(ステップS110に対応)、動作する演算器の数は1のままである(ステップS112に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が1となると共に、終了演算数が2となる(ステップS115に対応)。
処理速度と演算有効期間とは、変化していない。残りの演算数(=1)が0でなく(ステップS109に対応)、残りの演算数(=1)が演算器の最大数(=1)と等しいため(ステップS110に対応)、動作する演算器の数は1のままである(ステップS112に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が0となると共に、終了演算数が3となる(ステップS115に対応)。また、残りの演算数が3となると共に、終了演算数が0となる(ステップS119に対応)。
動作する演算器の数は、前のサイクルと同じ1である。処理速度は、前のサイクルと同じ3である。演算有効期間は、前のサイクルと同じ3である。残りの演算数は、直前の処理期間の3サイクル目で3に設定されている(ステップS119に対応)。
処理速度は変化していない。演算有効期間は4サイクルに変化するため(ステップS103に対応)、残りの演算数が3に設定される(ステップS104に対応)。
処理速度と演算有効期間とは、変化していない。残りの演算数(=1)が0でなく(ステップS109に対応)、残りの演算数(=1)が演算器の最大数(=2)よりも小さいため(ステップS110に対応)、動作する演算器の数は1となる(ステップS111に対応)。1サイクルが経過した後(ステップS114に対応)、残りの演算数が0となると共に、終了演算数が4となる(ステップS115に対応)。また、残りの演算数が4となると共に、終了演算数が0となる(ステップS119に対応)。
制御部30は、以下の(5)式により演算器の処理回数を算出する。演算器の処理回数は、処理期間に演算器が演算を行う回数である。
演算器の処理回数=RD(処理速度/演算所要時間) ・・・(5)
(5)式のRDは、小数を切り捨てることを意味している。
また、制御部30は、以下の(6)式により演算可能数を算出する。
演算可能数=演算器の最大数×演算器の処理回数 ・・・(6)
また、制御部30は、処理速度を管理するための変数であるunit_timeを、処理速度から1を引いた値に設定すると共に、変更フラグを1に設定する。
制御部30は、以下の(7)式により、演算器の最大数を算出する。
演算器の最大数=RU(演算有効期間/演算器の処理回数) ・・・(7)
(7)式のRUは、小数を切り上げる(小数を切り捨て、整数を1増やす)ことを意味している。
calc_latencyが0でない間、以下の処理が行われる。制御部30は、unit_timeを1減らすと共に、calc_latencyを1減らす。また、制御部30は、1サイクルが経過するのを待つ。
全ての演算処理部10a1,10a2,10a3,10a4,10a5から出力される有効信号が有効状態となるため、演算有効期間は5サイクルである。演算器の最大数が5に設定され、処理速度が3に設定される(ステップS100に対応)。処理速度が3であり、演算所要時間が2であるため、演算器の処理回数は1となる(ステップS102aに対応)。このため、演算可能数は5となる(ステップS102aに対応)。また、残りの演算数は5となる(ステップS104に対応)。
処理速度と演算有効期間とは、変化していない。残りの演算数が0であるため(ステップS109に対応)、動作する演算器の数は0となる(ステップS116に対応)。3サイクル目ではunit_timeは0になっている。1サイクルが経過した後(ステップS117に対応)、残りの演算数が5となると共に、終了演算数が0となる(ステップS119に対応)。その後、次の処理期間(3サイクル)の処理が行われる。
全ての演算処理部10a1,10a2,10a3,10a4,10a5から出力される有効信号が有効状態となるため、演算有効期間は5サイクルである。演算器の最大数が5に設定され、処理速度が7に設定される(ステップS100に対応)。処理速度が7であり、演算所要時間が2であるため、演算器の処理回数は3となる(ステップS102aに対応)。このため、演算可能数は15となる(ステップS102aに対応)。また、残りの演算数は5となる(ステップS104に対応)。
処理速度と演算有効期間とは、変化していない。残りの演算数(=3)が0でなく(ステップS109に対応)、残りの演算数(=3)が演算器の最大数(=2)よりも大きいため(ステップS110に対応)、動作する演算器の数は2となる(ステップS112に対応)。演算所要時間が2であるため、calc_latencyは1に設定される(ステップS113に対応)。2サイクルが経過した後(ステップS114aに対応)、残りの演算数が1となると共に、終了演算数が4となる(ステップS115に対応)。
処理速度と演算有効期間とは、変化していない。残りの演算数(=1)が0でなく(ステップS109に対応)、残りの演算数(=1)が演算器の最大数(=2)よりも小さいため(ステップS110に対応)、動作する演算器の数は1となる(ステップS111に対応)。演算所要時間が2であるため、calc_latencyは1に設定される(ステップS113に対応)。2サイクルが経過した後(ステップS114aに対応)、残りの演算数が0となると共に、終了演算数が5となる(ステップS115に対応)。
処理速度と演算有効期間とは、変化していない。残りの演算数が0であるため(ステップS109に対応)、動作する演算器の数は0となる(ステップS116に対応)。7サイクル目ではunit_timeは0になっている。1サイクルが経過した後(ステップS117に対応)、残りの演算数が5となると共に、終了演算数が0となる(ステップS119に対応)。その後、次の処理期間(7サイクル)の処理が行われる。
Claims (4)
- 互いに異なる処理を行う複数の演算処理部と、
同一の演算を行う複数の演算器と、
処理すべき演算の数と等しい数のデータが、予め設定された処理期間に処理され、かつ、前記処理期間を分割した複数の分割期間に動作する前記演算器の数が平均化されるように、前記複数の分割期間に動作する前記演算器の数を、前記処理期間の長さと前記演算の数とに基づいて制御する制御部と、
を有し、
前記制御部は、前記複数の分割期間に動作する前記演算器の数を、前記複数の演算処理部から出力されるデータ有効信号から検出された前記処理期間の長さと前記演算の数とに基づいて制御する
演算装置。 - 前記制御部は、前記処理期間の長さと前記演算の数とが外部から設定されるレジスタを有する請求項1に記載の演算装置。
- 前記処理期間の長さは、前記複数の演算処理部から出力されるデータ有効信号の2つの有効状態の間隔から検出された時間であり、
前記演算の数は、前記データ有効信号の有効状態の数から検出された数である請求項1に記載の演算装置。 - 前記複数の演算処理部と前記複数の演算器との間のデータの転送を制御し、前記複数の演算処理部から出力されるデータ有効信号から前記処理期間の長さと前記演算の数とを検出する調停部をさらに有する請求項1に記載の演算装置。
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)
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 | 株式会社日立製作所 | 情報処理システムおよびグラフ処理方法 |
-
2013
- 2013-11-15 JP JP2013236904A patent/JP6196886B2/ja not_active Expired - Fee Related
-
2014
- 2014-11-10 US US14/537,208 patent/US9798305B2/en active Active
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 |