JP6335661B2 - 演算装置およびその制御方法 - Google Patents
演算装置およびその制御方法 Download PDFInfo
- Publication number
- JP6335661B2 JP6335661B2 JP2014116196A JP2014116196A JP6335661B2 JP 6335661 B2 JP6335661 B2 JP 6335661B2 JP 2014116196 A JP2014116196 A JP 2014116196A JP 2014116196 A JP2014116196 A JP 2014116196A JP 6335661 B2 JP6335661 B2 JP 6335661B2
- Authority
- JP
- Japan
- Prior art keywords
- rotation
- calculation
- mode
- arithmetic unit
- direction information
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5446—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation using crossaddition algorithms, e.g. CORDIC
-
- 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
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Description
本発明に係る演算装置の第1実施形態として、CORDICアルゴリズムを利用する演算装置を例に挙げて以下に説明する。特に、以下の説明においては、同一の演算ユニットをn個(nは2以上の整数)縦続接続したパイプライン構成の演算装置について説明する。
まず、CORDICアルゴリズムについて簡単に説明する。CORDICは、arctan(2−n)(n=0,1,2,3・・・)なる角度系列の回転をビットシフトと加減算のみで繰り返し行い、2次元座標(2次元ベクトル)を回転させ所望の角度に収束させるものである。なお、CORDICの動作モードには、ベクタモードと回転モードの2種類があり、時分割動作するように構成される。ベクタモードは2次元座標を極座標に変換し、2次元座標の原点からの距離(絶対値)と偏角を出力する。一方、回転モードでは、ベクタモードで得られた偏角や当該偏角を用いて演算して出した角度などを回転角として入力し、他の入力座標データを当該回転角だけ回転した座標データを出力する。どちらのモードにおいても角度系列の回転を繰り返し行う。
yi+1=yi−(2−i)・xi ・・・(1)
ベクタモードと回転モードで処理が完結する場合(すなわち偏角を外部で必要としない場合)、回転方向の情報をベクタモードで偏角に変換し、回転モードでまた元の回転方向情報に戻す処理は冗長な処理である。そのため、回転方向情報を直接送ることにより、座標回転演算を効率的に行える上、偏角への変換・逆変換が不要になる分、低遅延の処理が可能になることが期待できる。
以下では、演算ユニット201のベクタモードと回転モードの動作について説明する。具体的な動作として、ベクタモード1サイクルに続き回転モードで6サイクル処理する例を紹介する。
ベクタモードや回転モード、それに正弦・余弦演算機能があれば、種々の処理に対応できる。ただし、座標データの偏角の値を知ることはできない。そこで、偏角を知るために回転角θを演算するパイプラインを付け加えれるとよい。
変形例1として、非特許文献3に開示されているダブルローテーション型CORDICを元とした構成について説明する。
ダブルローテーション型CORDICは、θ/2回転を2回行う事によりθ回転を実現する構成である。その場合、ある条件下で無回転を実現することが可能となる。そのため、各ステージの回転は3つの回転角(+θ,0,−θ)の中から選択する事ができ演算精度の向上に寄与する。また、スケーリンング補正に用いる係数が従来よりも簡易なものとなるという利点もある。
yi+1=(1−2−2i)・yi−(2−(i−1))・xi ・・・(2)
yi+1=(1+2−2i)・yi ・・・(3)
図4は、変形例1における演算ユニットの構成を示す図である。図4に示す演算ユニット401は、図2に示す演算ユニット201の構成を置き換えたものに相当する。パイプラインCORDICを構成する全ての演算ユニットは演算ユニット401と同一構成のものを使用する。
上述の構成により実現される特徴的な機能は、ベクタ入力座標の偏角の1/2倍と2倍の回転処理である。この機能を実現するには、ベクタモードと回転モード間で、2種類の回転演算を切り替える必要がある。具体的には、ベクタモードでシングル型演算を行った場合は、回転モードでダブル型演算を行い、ベクタモードでダブル型演算を行った場合は、回転モードでシングル型演算を行う。これにより、前者は偏角の2倍の回転、後者は偏角の1/2倍の回転を実現できる。
変形例2として、より複雑な回転機能を実現できるようにした構成について説明する。具体的には、1つの演算ユニットで複数の回転方向情報を保持できる構成とし、当該複数の回転方向情報の間でビット間演算を行い、演算ユニット毎にビット間演算結果で回転方向を制御する。
図6は、変形例2における演算ユニットの構成を示す図である。演算ユニット501においては、図4に示した変形例1の演算ユニット401に対し、新たな構成要素が追加されている。
図7(e)に対応した回転機能を実現する処理の例について説明する。ここでは、演算ユニット501をM段縦属接続したパイプラインCORDICに対し、第1サイクルで第1のベクタ座標データを入力し、第2サイクルで第2のベクタ座標データを入力する。パイプラインCORDICは第1の座標データに対しダブル型演算でベクタ化を行い、第2の座標データに対しシングル型演算でベクタ化を行う。
変形例3として、新たな回転機能を実現可能とする構成について説明する。具体的には、演算ユニットの構成は演算ユニット501と同じであるが、ビット間演算部515において、2入力の一方を選択する機能を追加している。これにより、1つのパイプラインCORDICで、ベクタモードと回転モードの両方を処理可能としている。
・保持した偏角θ2=2ψに基づいて、ダブル型演算で座標回転を行った場合、回転角は偏角と同じ2ψとなる。
・図7(d)に示すビット間演算を行い、ダブル型演算で座標回転を行った場合、回転角は合成角θ1+(θ2/2)=3ψとなる。
・シングル型演算のベクタ化で保持した偏角θ1=2ψに基づいて、ダブル型演算で座標回転を行った場合、回転角は偏角の2倍の4ψとなる。
第2実施形態では、上述の図3に示す構成の冗長部分を削減する構成について説明する。すなわち、正弦や余弦の計算と同様、同じ回転方向情報で回転角を何度も演算する意味は無く、1回演算すれば十分である。つまり、回転角θを演算するパイプラインを有する図3の構成には冗長な部分が存在する。
図8は、第2実施形態に係る演算装置の構成を示す図である。演算ユニット801の構成は、図2に示す構成におけるy座標の回転演算の構成が変更されたものである。
変形例3では、第2実施例と同一の構成において、制御の仕方を変えることにより別の機能を実現する例について説明する。
第3実施形態では、保持情報を直接出力し、回転方向情報を直接入力することができる演算装置について説明する。
図9は、第3実施形態に係る演算装置の構成を示す図である。図9(a)に示す構成では、前段の演算ユニットから受け取る回転方向情報を1ビット左シフトした後、当該演算ユニットの回転方向情報を最下位ビットに挿入する。これにより、回転方向情報を下位ビット方向へ順次連結し、連結情報として後段の演算ユニットに転送する。つまり、回転方向情報を(i+1)番目以降の演算ユニットに提供する。
<正規化除算装置>
画像処理や検索エンジン,信号処理などの分野における問題は、連立一次方程式や固有問題を解くことに帰着される場合が多い。また、非線形な方程式の問題においても、問題を単純化し連立一次方程式の形に変形する場合も多くある。そのため、近年の画像処理,信号処理において連立一次方程式は数値計算の主な演算の一つとなっている。
for i=0 to N−1 step 1
if yi≧1 then
xi+1=xi
yi+1=yi−(2−(i+1))・xi
else
xi+1=xi
yi+1=yi+(2−(i+1))・xi
出力:yN=1 ・・・(4)
図11は、第4実施形態に係る演算装置の構成を示す図である。演算ユニット1101は、パイプラインを構成するi段目(i=0,1,2,3・・・)の演算ユニットの構成を表している。演算ユニット1101の前段には、前段側の演算ユニット群1102a、後段には、後段側の演算ユニット群1102bが配置されている。各演算ユニットの構成は演算ユニット1101と同様の構成である。
上述の構成要素を中心に正規化モードと除算モードの動作について説明する。具体的な動作として、正規化モード1サイクルに続き除算モードで6サイクル処理する例を紹介する。
第5実施形態では、保持情報を直接出力し、加減算判定情報を直接入力することが可能な演算装置について説明する。
図13は、第5実施形態に係る演算装置の構成を示す図である。図13における構成では、前段演算ユニットから受け取る加減算判定情報を1ビット左シフトした後、当該演算ユニットの加減算判定情報を最下位ビットに挿入することにより加減算判定情報を下位ビット方向へ順次連結し、連結情報として出力する。演算ユニット毎に1ビットの加減算判定情報を連結するため、パイプラインの最終段から出力する連結情報のビット数は演算ユニットの個数(すなわちパイプラインの段数)に等しい。
Claims (9)
- 縦続接続したn個(nは2以上の整数)の演算ユニットを有する演算装置であって、
各演算ユニットは、
回転演算を行う回転モードまたは回転角を算出するベクタモードの何れかで動作する演算器と、
前記演算器が前記ベクタモードで動作する際に出力される回転方向情報を保持する保持手段と、
前段の演算ユニットから入力された回転角に基づいて後段の演算ユニットに出力する回転角を算出する角度演算手段と、
を有し、
前記演算器は、前記回転モードで動作する際、前段の演算ユニットから入力されたデータに対して前記保持手段に保持された回転方向情報に基づいて回転演算を行い、
i番目(iはn以下の自然数)の演算ユニットにおいて、
前記角度演算手段は、前記演算器に含まれる1つの演算パスを利用して構成され、該角度演算手段は、arctan(2 −i )と(i−1)番目の演算ユニットから入力された回転角とに基づいて(i+1)番目の演算ユニットに出力する回転角を算出する
ことを特徴とする演算装置。 - 前記演算ユニット毎の前記保持手段に保持された回転方向情報をビット連結して出力する出力手段を更に有する
ことを特徴とする請求項1に記載の演算装置。 - 前記出力手段は、各演算ユニットにおいて、
前段の演算ユニットから入力された回転方向情報と前記保持手段に保持された回転方向情報とをビット連結して後段の演算ユニットに出力する
ことを特徴とする請求項2に記載の演算装置。 - 前記演算器は、複数の回転演算方法を実行可能に構成されており、該複数の回転演算方法の回転角が整数比の関係にある
ことを特徴とする請求項1又は3に記載の演算装置。 - 前記演算器は、前記回転モードと前記ベクタモードとでそれぞれ異なる回転演算方法を実行可能である
ことを特徴とする請求項4に記載の演算装置。 - 前記演算器は、ダブルローテーション型CORDIC演算器として構成され、arctan(2−i)の演算を行うシングル型演算と、2・arctan(2−i)の演算を行うダブル型演算と、を実行可能に構成されており、
前記ダブルローテーション型CORDIC演算器は、(i−1)番目の演算ユニットから入力されたモード信号に応じて前記シングル型演算及び前記ダブル型演算の何れかで時分割動作するように構成され、
前記ベクタモードでの前記シングル型演算と前記回転モードでの前記ダブル型演算とを組み合わせることにより、偏角の2倍の回転演算を行い、前記ベクタモードでの前記ダブル型演算と前記回転モードでの前記シングル型演算とを組み合わせることにより、偏角の1/2倍の回転演算を行う、よう構成されている
ことを特徴とする請求項5に記載の演算装置。 - 前記保持手段は、前記ベクタモードの動作により第1のデータに対して出力される第1の回転方向情報と第2のデータに対して出力される第2の回転方向情報とを保持するよう構成されており、
前記演算器は、前記回転モードで動作する際、前記第1の回転方向情報と前記第2の回転方向情報とに基づいて回転演算を行う
ことを特徴とする請求項6に記載の演算装置。 - 前記ダブルローテーション型CORDIC演算器は、前記第1の回転方向情報と前記第2の回転方向情報とを出力した際のベクタモードでの動作が前記シングル型演算であったか前記ダブル型演算であったか否かに基づいて、前記第1の回転方向情報に対する重みと前記第2の回転方向情報に対する重みとを決定し、該決定された重みを用いて回転演算を行う
ことを特徴とする請求項7に記載の演算装置。 - 縦続接続したn個(nは2以上の整数)の演算ユニットを有する演算装置の制御方法であって、
各演算ユニットは、回転演算を行う回転モードまたは回転角を算出するベクタモードの何れかで動作する演算器を有しており、
前記演算器を前記ベクタモードで動作させ、出力される回転方向情報をレジスタに保持する保持工程と、
前段の演算ユニットから入力された回転角に基づいて後段の演算ユニットに出力する回転角を算出する角度演算工程と、
前記演算器を前記回転モードで動作させ、前段の演算ユニットから入力されたデータに対して前記レジスタに保持された回転方向情報に基づいて回転演算を行う回転演算工程と、
を含み、
i番目(iはn以下の自然数)の演算ユニットにおいて、
前記角度演算工程は、前記演算器に含まれる1つの演算パスを利用して実行され、該角度演算工程では、arctan(2 −i )と(i−1)番目の演算ユニットから入力された回転角とに基づいて(i+1)番目の演算ユニットに出力する回転角を算出する
ことを特徴とする演算装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014116196A JP6335661B2 (ja) | 2014-06-04 | 2014-06-04 | 演算装置およびその制御方法 |
US14/729,410 US9959094B2 (en) | 2014-06-04 | 2015-06-03 | Arithmetic apparatus and control method of the same using cordic algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014116196A JP6335661B2 (ja) | 2014-06-04 | 2014-06-04 | 演算装置およびその制御方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015230561A JP2015230561A (ja) | 2015-12-21 |
JP2015230561A5 JP2015230561A5 (ja) | 2017-07-20 |
JP6335661B2 true JP6335661B2 (ja) | 2018-05-30 |
Family
ID=54769621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014116196A Active JP6335661B2 (ja) | 2014-06-04 | 2014-06-04 | 演算装置およびその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9959094B2 (ja) |
JP (1) | JP6335661B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6581359B2 (ja) | 2015-01-07 | 2019-09-25 | キヤノン株式会社 | 情報処理装置及びその制御方法及びプログラム及び記憶媒体、並びに、ビデオカメラ |
JP6750857B2 (ja) * | 2016-06-14 | 2020-09-02 | キヤノン株式会社 | 座標データ回転演算装置及び座標データ回転演算方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4896287A (en) | 1988-05-31 | 1990-01-23 | General Electric Company | Cordic complex multiplier |
EP0365226A3 (en) * | 1988-10-17 | 1991-02-20 | Raytheon Company | Cordic apparatus and method for approximating the magnitude and phase of a complex number |
WO2009110560A1 (ja) * | 2008-03-06 | 2009-09-11 | 日本電気株式会社 | Cordic演算回路及び方法 |
JP2009281883A (ja) * | 2008-05-22 | 2009-12-03 | Toshiba Mach Co Ltd | 速度検出装置およびサーボモータ |
US8332451B2 (en) * | 2008-11-27 | 2012-12-11 | Redpine Signals, Inc. | Programmable CORDIC Processor |
WO2011162310A1 (ja) * | 2010-06-23 | 2011-12-29 | 日本電気株式会社 | プロセッサおよび演算方法 |
US8775493B2 (en) * | 2011-04-13 | 2014-07-08 | Lsi Corporation | Double-step CORDIC processing for conventional signed arithmetic with decision postponing |
-
2014
- 2014-06-04 JP JP2014116196A patent/JP6335661B2/ja active Active
-
2015
- 2015-06-03 US US14/729,410 patent/US9959094B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150355885A1 (en) | 2015-12-10 |
JP2015230561A (ja) | 2015-12-21 |
US9959094B2 (en) | 2018-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109358900B (zh) | 支持离散数据表示的人工神经网络正向运算装置和方法 | |
CN110188870B (zh) | 用于执行人工神经网络自学习运算的装置和方法 | |
Shukla et al. | Low latency hybrid CORDIC algorithm | |
US11150872B2 (en) | Computational units for element approximation | |
US20210157550A1 (en) | Computational Units for Batch Normalization | |
CN108897716B (zh) | 通过存储器读写操作来缩减计算量的数据处理装置及方法 | |
WO2017177442A1 (zh) | 支持离散数据表示的人工神经网络正向运算装置和方法 | |
US11922133B2 (en) | Processor and method for processing mask data | |
Chinnathambi et al. | FPGA implementation of fast and area efficient CORDIC algorithm | |
JP6335661B2 (ja) | 演算装置およびその制御方法 | |
CN112783469A (zh) | 一种用于执行浮点指数运算的方法及装置 | |
US20050131975A1 (en) | Function arithmetic method and function arithmetic circuit | |
US8549056B2 (en) | Apparatus and program for arctangent calculation | |
JP5229314B2 (ja) | Cordic演算回路及び方法 | |
US7047269B2 (en) | Cordic method and architecture applied in vector rotation | |
WO2017177446A1 (zh) | 支持离散数据表示的人工神经网络反向训练装置和方法 | |
JP3003467B2 (ja) | 演算装置 | |
US20070198811A1 (en) | Data-driven information processor performing operations between data sets included in data packet | |
JP6428488B2 (ja) | 加減算器及び加減算器の制御方法 | |
CN109634556B (zh) | 一种乘累加器及累加输出方法 | |
Kuchukov et al. | The application of modular arithmetic for matrix calculations | |
JP2017123057A (ja) | 座標演算装置及び座標演算方法 | |
US11231908B2 (en) | Random number generation device and random number generation method | |
TWI444889B (zh) | 複數除法器及其相關方法 | |
JP2018092325A (ja) | 演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170605 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170605 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180126 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180323 |
|
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: 20180402 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180501 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6335661 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |