JP5733379B2 - プロセッサおよび演算方法 - Google Patents
プロセッサおよび演算方法 Download PDFInfo
- Publication number
- JP5733379B2 JP5733379B2 JP2013254168A JP2013254168A JP5733379B2 JP 5733379 B2 JP5733379 B2 JP 5733379B2 JP 2013254168 A JP2013254168 A JP 2013254168A JP 2013254168 A JP2013254168 A JP 2013254168A JP 5733379 B2 JP5733379 B2 JP 5733379B2
- Authority
- JP
- Japan
- Prior art keywords
- subtraction
- shift
- data
- shift addition
- addition
- 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
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/548—Trigonometric functions; Co-ordinate transformations
-
- 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/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Description
また、CORDICアルゴリズムには、数式(6)に示す回転方向パラメータσjの決定方法として、Rotationモード(ローテンション(回転)モード)およびVectorモード(ベクターモード)の2つのモードがある。
Rotationモードでは、目的角度θを初期角度z(0)として考え、初期ベクトル[x(0),y(0)]’をθ分回転する処理が行われる。Vectorモードでは、初期角度z(0)を0として考え、ベクトルをx軸まで回転した回転角度(z(n))と、初期ベクトルのノルム(x(n))とを求める処理が行われる。
このように、CORDICアルゴリズムの特徴は、乗除算、三角関数演算、指数・対数演算、双曲関数演算等を単一のアルゴリズムで実現できることである。この特徴を利用してディジタル信号を処理するプロセッサに関わる技術として、CORDIC演算回路を基本演算回路に採用した第1の関連技術が知られている(非特許文献1および非特許文献2参照)。
各ステージでは、(N/Ri)個(なお、ここでの“/”は除算を表す)のRiポイントDFT、および、回転子を乗算する演算(回転子乗算)が行われる。なお、ここで、ステージとは、演算処理を複数の段階に分割したときの1つの段階を指す。各ステージで行うRポイントDFTを基数Rのバタフライ演算と呼称する。バタフライ演算の実現手法として、small−Nアルゴリズムが知られている(例えば、非特許文献3参照)。
√2のスケーリング処理を無視すると、π/4回転は、CORDICの円座標系Rotationモードで処理できる。符号反転の影響は、回転子乗算で余分にπ回転することにより、抑えることができる。√2スケーリングの影響は、全ステージを処理した後に、まとめてスケーリング補正処理を行えばよい。このスケーリング補正処理はCORDICの乗算モード(線形座標系Rotationモード)により行うことができる。従って、ポイント数が2のべき乗のDFTは、全てCORDICで処理できる。そのDFTの詳細な説明は、非特許文献1に示されている。
CORDIC(COordinate Rotation DIgital Computer)演算を実行可能に接続された複数のシフト加減算手段を有し、1ステージ以上のシフト加減算処理を行うバタフライ演算の前記シフト加減算処理を、前記シフト加減算手段が実行する演算手段と、
外部から受け取った複数のデータに基づいてCORDIC演算またはバタフライ演算を実行することを前記演算手段に指示する制御手段と、
を備える。
CORDIC演算を実行可能に接続された複数のシフト加減算手段を有する演算手段を備えたプロセッサが、
外部から受け取った複数のデータに基づいて、1ステージ以上のシフト加減算処理を行うバタフライ演算の前記シフト加減算処理を、前記シフト加減算手段が実行する。
まず、CORDIC演算を行うプロセッサ10の動作について説明する。
次に、基数2のバタフライ演算に関わるプロセッサ10の動作について、図4の模式図を用いて説明する。
次に、基数3のバタフライ演算を行うプロセッサ10の動作について、図5の模式図を用いて説明する。
まず、シフト回路2201は、第1加減算ステージでの処理を実行する。
次に、シフト回路2202は、シフト回路2201から出力されたデータに、第2加減算ステージにおける処理を実行する。つまり、シフト回路2202において、クロスバ221とS&L222と加減算器223により、上記データに、第2加減算ステージにおける加減算処理を実行する。
次に、シフト回路2203〜2206は、係数乗算ステージでの係数乗算処理を実行する。その係数乗算処理では、シフト加減算が繰り返し実行される。16ビット精度は、4ステージ(4段)のシフト加減算を行うことによって実現される。
−0.8660jの係数乗算処理に着目して説明を続ける。
次に、シフト回路2207,2208は、それぞれ、シフト回路2201,2202と同様に動作して、第3〜第4加減算ステージにおける加減算処理を実行する。
次に、基数4と基数5の各バタフライ演算を行うプロセッサ10の動作について説明する。
2 演算部
3 制御部
100 制御回路
200 演算回路(CORDIC兼バタフライ演算回路)
210 シフト制御回路
220 シフト回路
221 クロスバ
222 S&L(シフタ兼LUT)
223 加減算器
224 回転方向判定回路
300 メモリ
1001 制御回路
1002 CORDIC−PE
1003 メモリ
2002 バタフライ演算回路
Claims (6)
- 外部から受け取った、複素数の実数成分を表す実数成分データおよび前記複素数の虚数成分を表す虚数成分データを含む複数のデータに基づいて、CORDIC(COordinate Rotation DIgital Computer)アルゴリズムにより実行可能な演算を実行可能に接続され、1ステージ以上のシフト加減算処理を行うバタフライ演算の前記シフト加減算処理を実行する複数のシフト加減算手段と、
前記バタフライ演算の基数を表す情報に基づいて、前記シフト加減算処理において加減算するデータの組み合わせを制御する情報を、前記シフト加減算手段に対して供給し、前記バタフライ演算の基数の2倍が前記シフト加減算手段に入力可能なデータ数よりも多い場合には、前記実数成分データに対する前記シフト加減算処理と、前記虚数成分データに対する前記シフト加減算処理とを、互いに異なるサイクルにおいて制御するシフト加減算制御手段と、
を有する演算手段と、
前記CORDICアルゴリズムにより実行可能な演算またはバタフライ演算を実行することを前記演算手段に指示し、前記バタフライ演算を実行することを前記演算手段に指示する場合には、前記バタフライ演算の基数を表す情報を前記演算手段に供給する制御手段と、
を備えるプロセッサ。 - 前記シフト加減算制御手段は、前記シフト加減算処理に係数乗算処理が含まれる場合には、前記基数を表す情報に基づいて、前記係数乗算処理を実行するシフト加減算手段に対して、係数を乗算するデータに対するビットシフト量を表す情報をさらに供給する
請求項1に記載のプロセッサ。 - 前記シフト加減算制御手段は、前記係数乗算処理における前記係数が虚数である場合には、該係数乗算処理を実行する前記シフト加減算手段に対して、虚数である前記係数を乗算する実数成分データと虚数成分データとの入れ替えを制御する情報をさらに供給する
請求項2に記載のプロセッサ。 - 外部から受け取った、複素数の実数成分を表す実数成分データおよび前記複素数の虚数成分を表す虚数成分データを含む、複数のデータに基づいて、CORDICアルゴリズムにより実行可能な演算を実行可能に接続され、1ステージ以上のシフト加減算処理を行うバタフライ演算の前記シフト加減算処理を実行する複数のシフト加減算手段を備えるプロセッサによって、
前記バタフライ演算の基数を表す情報に基づいて、前記シフト加減算処理において加減算するデータの組み合わせを制御する情報を、前記シフト加減算手段に対して供給し、前記バタフライ演算の基数の2倍が前記シフト加減算手段に入力可能なデータ数よりも多い場合には、前記実数成分データに対する前記シフト加減算処理と、前記虚数成分データに対する前記シフト加減算処理とを、互いに異なるサイクルにおいて制御するシフト加減算制御手段を有する演算手段に、前記バタフライ演算の基数を表す情報を供給する
演算方法。 - 前記シフト加減算処理に係数乗算処理が含まれる場合には、係数を乗算するデータに対するビットシフト量を、前記基数を表す情報に基づいてさらに制御する、前記シフト加減算制御手段を有する前記演算手段に、前記バタフライ演算の基数を表す情報を供給する
請求項4に記載の演算方法。 - 前記係数乗算処理における前記係数が虚数である場合には、該係数乗算処理を実行する前記シフト加減算手段に対して、虚数である前記係数を乗算する実数成分データと虚数成分データとの入れ替えを制御する、前記シフト加減算制御手段を有する前記演算手段に、前記バタフライ演算の基数を表す情報を供給する
請求項5に記載の演算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013254168A JP5733379B2 (ja) | 2010-06-23 | 2013-12-09 | プロセッサおよび演算方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010142206 | 2010-06-23 | ||
JP2010142206 | 2010-06-23 | ||
JP2013254168A JP5733379B2 (ja) | 2010-06-23 | 2013-12-09 | プロセッサおよび演算方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012521513A Division JP5516731B2 (ja) | 2010-06-23 | 2011-06-16 | プロセッサおよび演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014099181A JP2014099181A (ja) | 2014-05-29 |
JP5733379B2 true JP5733379B2 (ja) | 2015-06-10 |
Family
ID=45371486
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012521513A Active JP5516731B2 (ja) | 2010-06-23 | 2011-06-16 | プロセッサおよび演算方法 |
JP2013254168A Expired - Fee Related JP5733379B2 (ja) | 2010-06-23 | 2013-12-09 | プロセッサおよび演算方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012521513A Active JP5516731B2 (ja) | 2010-06-23 | 2011-06-16 | プロセッサおよび演算方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9021003B2 (ja) |
JP (2) | JP5516731B2 (ja) |
WO (1) | WO2011162310A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011162310A1 (ja) * | 2010-06-23 | 2011-12-29 | 日本電気株式会社 | プロセッサおよび演算方法 |
JP6335661B2 (ja) * | 2014-06-04 | 2018-05-30 | キヤノン株式会社 | 演算装置およびその制御方法 |
FR3087908B1 (fr) * | 2018-10-24 | 2021-08-06 | St Microelectronics Grenoble 2 | Microcontroleur capable d'executer de facon acceleree un traitement parametrable |
CN111753249B (zh) * | 2020-06-30 | 2023-09-19 | 成都博宇利华科技有限公司 | 一种基于fpga芯片计算信号频谱的方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3766370A (en) * | 1971-05-14 | 1973-10-16 | Hewlett Packard Co | Elementary floating point cordic function processor and shifter |
JP3095348B2 (ja) * | 1996-02-16 | 2000-10-03 | 松下電器産業株式会社 | データ圧縮伸長装置における離散余弦変換及び逆離散余弦変換装置 |
WO2002021323A2 (en) * | 2000-09-08 | 2002-03-14 | Avaz Networks | Hardware function generator support in a dsp |
US7082451B2 (en) * | 2002-09-09 | 2006-07-25 | Freescale Semiconductor, Inc. | Reconfigurable vector-FFT/IFFT, vector-multiplier/divider |
DE102005045519A1 (de) * | 2005-09-23 | 2007-03-29 | Newlogic Technologies Ag | Verfahren und Vorrichtung zur FFT Berechnung |
US20070266070A1 (en) * | 2006-05-12 | 2007-11-15 | Chung Hua University | Split-radix FFT/IFFT processor |
EP2254041B1 (en) | 2008-03-06 | 2014-11-26 | NEC Corporation | Cordic operational circuit and method |
US20100082722A1 (en) * | 2008-09-26 | 2010-04-01 | Sinnokrot Mohanned O | Methods and Apparatuses for Detection and Estimation with Fast Fourier Transform (FFT) in Orthogonal Frequency Division Multiplexing (OFDM) Communication Systems |
WO2011162310A1 (ja) * | 2010-06-23 | 2011-12-29 | 日本電気株式会社 | プロセッサおよび演算方法 |
-
2011
- 2011-06-16 WO PCT/JP2011/064324 patent/WO2011162310A1/ja active Application Filing
- 2011-06-16 JP JP2012521513A patent/JP5516731B2/ja active Active
- 2011-06-16 US US13/805,519 patent/US9021003B2/en not_active Expired - Fee Related
-
2013
- 2013-12-09 JP JP2013254168A patent/JP5733379B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5516731B2 (ja) | 2014-06-11 |
JP2014099181A (ja) | 2014-05-29 |
US20130097214A1 (en) | 2013-04-18 |
US9021003B2 (en) | 2015-04-28 |
WO2011162310A1 (ja) | 2011-12-29 |
JPWO2011162310A1 (ja) | 2013-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7689639B2 (en) | Complex logarithmic ALU | |
KR101173405B1 (ko) | 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장 | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
Kumar | FPGA implementation of the trigonometric functions using the CORDIC algorithm | |
JP5733379B2 (ja) | プロセッサおよび演算方法 | |
US8069200B2 (en) | Apparatus and method for implementing floating point additive and shift operations | |
Garrido et al. | Efficient memoryless CORDIC for FFT computation | |
Lakshmi et al. | VLSI architecture for low latency radix-4 CORDIC | |
CN111813372A (zh) | 一种高精度低时延实现32位整数除法的方法及装置 | |
JP5229314B2 (ja) | Cordic演算回路及び方法 | |
Shiri | A novel implementation of CORDIC algorithm based on dynamic microrotation generation | |
Javeed et al. | Design and performance comparison of modular multipliers implemented on FPGA platform | |
US20190171419A1 (en) | Arithmetic processing device and control method of arithmetic processing device | |
El-Motaz et al. | A cordic-friendly FFT architecture | |
Kumar et al. | Coordinate rotation digital computer algorithm: Design and architectures | |
JP2010067251A (ja) | 許容誤差内の整数除算回路 | |
CN110506255B (zh) | 节能型可变功率加法器及其使用方法 | |
Huang et al. | A new memoryless and low-latency FFT rotator architecture | |
Li et al. | A Portable DSP Coprocessor Design Using RISC-V Packed-SIMD Instructions | |
Vinh et al. | FPGA Implementation of Trigonometric Function Using Loop-Optimized Radix-4 CORDIC | |
KR100668674B1 (ko) | 고속 푸리에 변환 장치 및 고속 푸리에 변환 방법 | |
US20030074383A1 (en) | Shared multiplication in signal processing transforms | |
Lin et al. | A low-error and ROM-free logarithmic arithmetic unit for embedded 3D graphics applications | |
KR20070018981A (ko) | 복소수 로그 alu | |
Chen et al. | A dynamic non-uniform segmentation method for first-order polynomial function evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141110 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141218 |
|
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: 20150317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150330 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5733379 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |