JP6923350B2 - 4入力内積回路を用いる三角関数の計算 - Google Patents
4入力内積回路を用いる三角関数の計算 Download PDFInfo
- Publication number
- JP6923350B2 JP6923350B2 JP2017086804A JP2017086804A JP6923350B2 JP 6923350 B2 JP6923350 B2 JP 6923350B2 JP 2017086804 A JP2017086804 A JP 2017086804A JP 2017086804 A JP2017086804 A JP 2017086804A JP 6923350 B2 JP6923350 B2 JP 6923350B2
- Authority
- JP
- Japan
- Prior art keywords
- expx
- adder12
- bit
- adder34
- equal
- 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/548—Trigonometric functions; Co-ordinate transformations
-
- 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
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/04—Trigonometric functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Nonlinear Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Description
expHigh = ExpOfFraction_EffectBits
expMid = expHigh-24
expLow1 = expHigh-48
expLow2 = expHigh-72
)ことを含む。従って、1/π=Fraction_rcp_pi[215:0] *2-128で、Fraction_rcp_pi[215] = 1である。
mantissaAdder12_0[46:0] =
mantissaAdder12_0[46:0]^S34From12 + S34From12 (5)
Claims (11)
- (a)4個の第1の入力(v1, v2, v3, v4)と、4個の第2の入力(u1, u2, u3, u4)とを受信し、
(b)前記4個の第1の入力と4個の第2の入力を4個の乗算器(Mul1, Mul2, Mul3, 及び Mul4)へ入力し、
(c)乗算器Mul1 及び Mul2の出力を加算器Adder12へ入力し、
(d)乗算器Mul3 及び Mul4の出力を加算器Adder34へ入力し、
(e)Adder12 及び Adder34の出力を加算器AdderAllへ入力し、
(f)AdderAllの出力を出力するように構成された4要素内積回路(Dp4)と、
1/piとxの表現を前記乗算器Mul1, Mul2, Mul3, Mul4に入力することにより、x/piの概算を計算し、
三角関数回路に対応する三角関数の理論的に正しい値に対する入力引数としてtを受信し、前記入力引数として、Mul1 + Mul2 + Mul3 + Mul4に対する三角回路の出力と比較したとき、入力として、x/piを取る前記三角関数回路の出力の精度を増加するのに効果的なtを計算するために、加算器Adder12, Adder34, 及び AdderAllを用いて、前記乗算器Mul1, Mul2, Mul3, 及び Mul4の前記出力を処理する、ように構成された前記三角回路と、を備えるシステム。 - 前記三角回路は、Fraction_RCP_PI内のFraction_EffectBitsのビット位置がexpXの大きさと共に減少するように、xの指数部分(expX)の大きさにより、1/piの二値表現(Fraction_RCP_PI)の一部(Fraction_EffectBits)を選択することによって、x/piの概算を計算するように更に構成されている、請求項2に記載のシステム。
- Fraction_RCP_PIは216ビットを有しており、前記三角回路は、
expXが25以上ではない場合には、Fraction_EffectBits = Fraction_RCP_PI[215:215-95]とし、
expXが25以上である場合には、Fraction_EffectBits = Fraction_RCP_PI[215-expX+25:215-expX+25-95]とすることによって、Fraction_EffectBitsを選択するように更に構成されている、請求項3に記載のシステム。 - 前記三角回路は、
Fraction_RCP_PIを4個の部分High, Mid, Low1, 及び Low2に分割し、
x(manX)の仮数にMul1のHighを乗算し、
manXにMul2のMidを乗算し、
manXに、Mul3のLow1を乗算し、
manXに、Mul4のLow2を乗算する、ことによって、
x/piの概算を計算するように更に構成されている、請求項4に記載のシステム。 - 前記三角回路は、
ExpOfFraction_EffectBits = (expX >= 25) ? 2 + 25 - expX : 2を定義し、
manXに、ExpOfFraction_EffectBitsに等しいHighの指数(expHigh)を有する、
Mul1のHighを乗算し、
manXに、expHigh - 24に等しいMidの指数(expMid)を有する、Mul2のMidを乗算し、
manXに、expHigh - 48に等しいLow1の指数(expLow1)を有する、Mul3のLow1を乗算し、
manXに、expHigh - 72に等しいLow2の指数(expLow2)を有する、Mul4のLow2を乗算することによって、x/piの概算を計算するように更に構成されている、請求項5に記載のシステム。 - 前記三角回路は、
expXがゼロより小さいとき、AdderAllの前記出力の符号が、前記三角回路によって変更されないように、値FinalSignを0に等しく設定することによって、
tを計算するのに有効な、前記加算器Adder12, Adder34, 及び AdderAllを用いて、前記乗算器Mul1, Mul2, Mul3, 及び Mul4の前記出力を処理するように構成されている、請求項1に記載のシステム。 - 前記三角回路は、少なくともオペコードを受信し、前記オペコードが、Sineを示す場合、値isSignを1に等しく設定し、前記オペコードがCosineを示す場合には、値isCosを1に等しく設定するように構成されており、
前記三角回路は、
expXが25より大きい場合、expX'を25に設定し、
expXが25以下の場合、expX'をexpXに等しく設定し、
Mul1の前記出力と、Mul2の前記出力のビット47〜24をAdder12に入力し、
Mul2の前記出力のビット23〜0と連結されたAdder12の前記出力と等しい72 bits (Bit[71:0])を含む値Adder12_0を設定することによって、tを計算するのに有効な前記加算器Adder12, Adder34, 及び AdderAllを用いて、前記乗算器Mul1, Mul2, Mul3, 及び Mul4の前記出力を処理し、
最初に、expX’が2以上である場合、Bit[71:73-expX’] = 0と設定し、
二番目に、expX’が1以上の場合、(a)Bit[72-ExpX’] = isSin ? Bit[72 - ExpX’] : Bit[72 - ExpX’]^Bit[71 - ExpX’]と設定し、次に、(b)FinalSignをBit[72 - ExpX’]に等しく設定し、次に、(c)Bit[72 - ExpX’] = 0と設定し、
三番目に、expX’が1以上でないが、0より小さくはない場合には、FinalSign = isSin ? 0 : Bit[71]と設定し、
四番目に、expX’が0より小さくない場合には、Bit[71 - ExpX’] = Bit[71 - ExpX’]^isCosと設定することにより、Adder12_0を処理する、
ように構成されている、請求項7に記載のシステム。 - 前記三角回路は、
expX’がゼロより小さい場合、(a)FinalSignをゼロに等しく設定し、(b)値S34From12をゼロに等しく設定し、(c)Adder12_0について、先頭0及び丸め込みを実行することによって、Adder12_1を計算し、(d)Adder12_1 = isSin ? Adder12_1 : -Adder12_1を設定し、
expX’がゼロより小さくなく、Bit[71 - ExpX’]が1に等しい場合、(a)S34From12を、Bit[71 - ExpX’]に等しく設定し、(b)Bit[71 - ExpX’:0]を、Bit[71 - ExpX’ : 0]の2の補数に等しく設定し、
expX’がゼロより小さくない場合、Adder12_0について、先頭0及び丸め込みを実行することによって、Adder12_1を計算することによって、tを計算するのに有効な、前記加算器Adder12, Adder34, 及び AdderAllを用いて、前記乗算器Mul1, Mul2, Mul3, 及び Mul4の前記出力を処理するように構成されている、請求項8に記載のシステム。 - 前記三角回路は、
Mul3の前記出力と、Mul4の前記出力のビット47〜24とをAdder34に入力し、
Mul4の前記出力のビット23〜0と連結されたAdder34の前記出力と等しい48ビットを含む値Adder34_0を設定し、
Adder34_0について先頭0及び丸め込みを実行することによってAdder34_1を計算し、
S34From12が1に設定された場合、Adder34_1の前記符号を変更し、
Adder34_1 を (expX’ < 0 && isCos) ? 0.5 : Adder34_0に等しく設定することによって、tを計算するのに有効な前記加算器Adder12, Adder34, 及び AdderAllを用いて、前記乗算器Mul1, Mul2, Mul3, 及び Mul4の前記出力を処理するように構成されている、請求項9に記載のシステム。 - 前記三角回路は、
Adder12_1 及び Adder34_1の和として、AdderAllを用いて、AdderAll_0を計算し、
FinalSignが1に等しい場合、AdderAll_0の前記符号を変更し、
tとして、AdderAll_0を出力し、
t>=0の場合、t = t/2128を設定し、
SinPi(t) 及び CosPi(t)の少なくとも一つを近似するように構成された三角関数回路にtを入力する、ことによって、tを計算するのに有効な、前記加算器Adder12, Adder34, 及び AdderAllを用いて、前記乗算器Mul1, Mul2, Mul3, 及び Mul4の前記出力を処理するように構成されている、請求項10に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/141,625 | 2016-04-28 | ||
US15/141,625 US9875084B2 (en) | 2016-04-28 | 2016-04-28 | Calculating trigonometric functions using a four input dot product circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017199370A JP2017199370A (ja) | 2017-11-02 |
JP6923350B2 true JP6923350B2 (ja) | 2021-08-18 |
Family
ID=58644925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017086804A Active JP6923350B2 (ja) | 2016-04-28 | 2017-04-26 | 4入力内積回路を用いる三角関数の計算 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9875084B2 (ja) |
EP (1) | EP3239833B1 (ja) |
JP (1) | JP6923350B2 (ja) |
KR (1) | KR102281047B1 (ja) |
CN (1) | CN108182050B (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10921122B2 (en) * | 2018-02-06 | 2021-02-16 | Stmicroelectronics S.R.L. | Tilt event detection device, system and method |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3688098A (en) | 1971-01-21 | 1972-08-29 | Singer General Precision | Sine-cosine function generator using a power series |
EP0218724A1 (en) | 1985-04-22 | 1987-04-22 | AT&T Corp. | Fast sine and cosine generating apparatus |
US4777613A (en) | 1986-04-01 | 1988-10-11 | Motorola Inc. | Floating point numeric data processor |
EP0259514A1 (de) | 1986-09-11 | 1988-03-16 | Deutsche ITT Industries GmbH | Digitalschaltung zur gleichzeitigen Erzeugung von digitalen Sinus- und Cosinusfunktionswerten |
JPH0766372B2 (ja) | 1986-11-26 | 1995-07-19 | 株式会社日立製作所 | 浮動小数点演算処理装置 |
JPH0776916B2 (ja) | 1987-06-30 | 1995-08-16 | 日本電気株式会社 | 疑似除算方式を用いた三角関数演算装置 |
US5276633A (en) | 1992-08-14 | 1994-01-04 | Harris Corporation | Sine/cosine generator and method |
EP0622727A1 (en) | 1993-04-29 | 1994-11-02 | International Business Machines Corporation | System for optimizing argument reduction |
JPH086766A (ja) * | 1994-06-23 | 1996-01-12 | Matsushita Electric Ind Co Ltd | 正弦余弦演算装置 |
US5953241A (en) * | 1995-08-16 | 1999-09-14 | Microunity Engeering Systems, Inc. | Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction |
JP3790307B2 (ja) | 1996-10-16 | 2006-06-28 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
US5963460A (en) | 1996-12-17 | 1999-10-05 | Metaflow Technologies, Inc. | Apparatus for computing transcendental functions quickly |
US6055553A (en) | 1997-02-25 | 2000-04-25 | Kantabutra; Vitit | Apparatus for computing exponential and trigonometric functions |
US5774082A (en) | 1997-03-13 | 1998-06-30 | Raytheon Company | Digital phase to digital sine and cosine amplitude translator |
US6021423A (en) * | 1997-09-26 | 2000-02-01 | Xilinx, Inc. | Method for parallel-efficient configuring an FPGA for large FFTS and other vector rotation computations |
US6141670A (en) | 1997-09-30 | 2000-10-31 | Intel Corporation | Apparatus and method useful for evaluating periodic functions |
US6640237B1 (en) | 1999-07-27 | 2003-10-28 | Raytheon Company | Method and system for generating a trigonometric function |
AU2001289045A1 (en) | 2000-09-08 | 2002-03-22 | Avaz Networks | Hardware function generator support in a dsp |
CA2327924A1 (en) * | 2000-12-08 | 2002-06-08 | Ibm Canada Limited-Ibm Canada Limitee | Processor design for extended-precision arithmetic |
US7003536B2 (en) * | 2002-08-15 | 2006-02-21 | Comsys Communications & Signal Processing Ltd. | Reduced complexity fast hadamard transform |
US20050203980A1 (en) | 2004-03-11 | 2005-09-15 | Harrison John R. | Computing transcendental functions using single instruction multiple data (SIMD) operations |
KR100911786B1 (ko) * | 2004-11-10 | 2009-08-12 | 엔비디아 코포레이션 | 다목적 승산-가산 기능 유닛 |
US7912887B2 (en) * | 2006-05-10 | 2011-03-22 | Qualcomm Incorporated | Mode-based multiply-add recoding for denormal operands |
US9703530B2 (en) * | 2006-07-25 | 2017-07-11 | Vivante Corporation | Systems and methods for computing mathematical functions |
US20080071851A1 (en) * | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
US8090756B2 (en) | 2007-01-29 | 2012-01-03 | International Business Machines Corporation | Method and apparatus for generating trigonometric results |
US8838663B2 (en) * | 2007-03-30 | 2014-09-16 | Intel Corporation | Method and apparatus for performing multiplicative functions |
US8200728B2 (en) | 2008-05-29 | 2012-06-12 | Harris Corporation | Sine/cosine generator |
US8166091B2 (en) * | 2008-11-10 | 2012-04-24 | Crossfield Technology LLC | Floating-point fused dot-product unit |
US8601044B2 (en) * | 2010-03-02 | 2013-12-03 | Altera Corporation | Discrete Fourier Transform in an integrated circuit device |
US8589463B2 (en) | 2010-06-25 | 2013-11-19 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US9563402B2 (en) | 2011-09-01 | 2017-02-07 | Advanced Micro Devices, Inc. | Method and apparatus for additive range reduction |
CN103150137A (zh) | 2013-03-01 | 2013-06-12 | 北京理工大学 | 一种覆盖全圆周角度的单精度浮点三角函数的实现方法 |
US8626813B1 (en) * | 2013-08-12 | 2014-01-07 | Board Of Regents, The University Of Texas System | Dual-path fused floating-point two-term dot product unit |
-
2016
- 2016-04-28 US US15/141,625 patent/US9875084B2/en active Active
-
2017
- 2017-04-03 KR KR1020170043158A patent/KR102281047B1/ko active IP Right Grant
- 2017-04-26 JP JP2017086804A patent/JP6923350B2/ja active Active
- 2017-04-27 EP EP17168544.9A patent/EP3239833B1/en active Active
- 2017-04-27 CN CN201710287583.4A patent/CN108182050B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108182050A (zh) | 2018-06-19 |
US20170315780A1 (en) | 2017-11-02 |
CN108182050B (zh) | 2023-08-18 |
JP2017199370A (ja) | 2017-11-02 |
EP3239833A1 (en) | 2017-11-01 |
KR20170123230A (ko) | 2017-11-07 |
EP3239833B1 (en) | 2019-03-13 |
US9875084B2 (en) | 2018-01-23 |
KR102281047B1 (ko) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6360450B2 (ja) | 浮動小数点オペランドを乗算するためのデータ処理装置及び方法 | |
CN107769791B (zh) | 用于定点到浮点的转换的装置和方法及2的负幂检测器 | |
JP5731937B2 (ja) | ベクトル浮動小数点引数削減 | |
US9696964B2 (en) | Multiply adder | |
JP2004213622A (ja) | 固定小数点表示と浮動小数点表示との間で数を変換するデータ処理装置および方法 | |
CN107025091B (zh) | 二进制融合乘加浮点计算 | |
WO2013109532A1 (en) | Algebraic processor | |
US7406589B2 (en) | Processor having efficient function estimate instructions | |
KR20050089067A (ko) | 계산 장치 및 방법, 컴퓨터 프로그램을 저장하는 컴퓨터 프로그램 저장 매체 | |
JP6923350B2 (ja) | 4入力内積回路を用いる三角関数の計算 | |
US9767073B2 (en) | Arithmetic operation in a data processing system | |
JP6770777B2 (ja) | 数学的関数を計算するためのシステム及び方法 | |
JP7228956B2 (ja) | 数学的関数を計算するためのシステムおよび方法 | |
JP5794385B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
GB2549153A (en) | Apparatus and method for supporting a conversion instruction | |
JP6919539B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
TW201905845A (zh) | 全精度及部分精度數值的計算方法及裝置 | |
KR100974190B1 (ko) | 부동 소수점을 이용한 복소수 곱셈방법 | |
US20210149633A1 (en) | Low latency floating-point division operations | |
JP2015082152A (ja) | 誤差評価を伴う数値演算方法およびこのための装置 | |
Madian et al. | A Multi Cordic Architecture on FPGA Platform | |
JP2010049614A (ja) | 計算機 | |
JP2006243826A (ja) | 浮動小数点数値のm乗根を演算する浮動小数点演算装置及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200424 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210309 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210607 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20210607 |
|
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: 20210706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210729 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6923350 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |