CN105138305A - 高精度的三角函数计算方法以及装置 - Google Patents

高精度的三角函数计算方法以及装置 Download PDF

Info

Publication number
CN105138305A
CN105138305A CN201510621326.0A CN201510621326A CN105138305A CN 105138305 A CN105138305 A CN 105138305A CN 201510621326 A CN201510621326 A CN 201510621326A CN 105138305 A CN105138305 A CN 105138305A
Authority
CN
China
Prior art keywords
mentioned
value
numerical value
trigonometric function
unit
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.)
Granted
Application number
CN201510621326.0A
Other languages
English (en)
Other versions
CN105138305B (zh
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.)
Glenfly Tech Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit Co Ltd
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 Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority to CN201510621326.0A priority Critical patent/CN105138305B/zh
Priority to US14/883,889 priority patent/US10353672B2/en
Priority to EP15190840.7A priority patent/EP3147773B1/en
Priority to TW104135545A priority patent/TWI625635B/zh
Publication of CN105138305A publication Critical patent/CN105138305A/zh
Application granted granted Critical
Publication of CN105138305B publication Critical patent/CN105138305B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/548Trigonometric functions; Co-ordinate transformations

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明的实施例提出一种三角函数计算方法,使用运算逻辑单元(Arithmetic?Logic?Unit,ALU)及特殊函数处理单元(Special?Functional?Unit,SFU)协同执行。运算逻辑单元计算相应于输入参数x的余数r以及缩减数值x*。特殊函数处理单元计算相应于缩减数值x*的中介函数(intermediate-function)值f(x*)。运算逻辑单元计算缩减数值x*及中介函数值f(x*)的乘积作为三角函数的计算结果。

Description

高精度的三角函数计算方法以及装置
技术领域
本发明涉及一种图形处理单元技术,特别是一种高精度的三角函数计算方法以及装置。
背景技术
所有的三维图形应用程序接口(API,ApplicationProgrammingInterface),例如DirectX、OpenGL等,都包含三角函数运算(trigonometricfunctions)。为了满足三维图形的计算速度及效能限制,图形处理单元使用称作特殊函数处理单元(SpecialFunctionUnit,SFU)的硬件逻辑单元执行三角函数以及其它初等函数(elementaryfunctions)的计算。对于三角函数,三维图形应用程序接口于-100*Pi至100*Pi区间的最大绝对误差只需要0.0008。但是,通用计算图形处理单元(GPGPU,General-PurposeComputingonGraphicsProcessingUnit)演进至今,需要更高精度的三角函数运算。因此,本发明提出一种用以提升精确度的三角函数计算方法以及装置。
发明内容
本发明的实施例提出一种三角函数计算方法,使用运算逻辑单元及特殊函数处理单元协同执行。运算逻辑单元计算相应于输入参数x的余数r以及缩减数值x*。特殊函数处理单元计算相应于缩减数值x*的中介函数值f(x*)。运算逻辑单元计算缩减数值x*及中介函数值f(x*)的乘积作为三角函数的计算结果。
本发明的实施例提出一种三角函数计算装置,包含运算逻辑单元及特殊函数处理单元。特殊函数处理单元耦接至逻辑处理单元。特殊函数处理单元计算相应于缩减数值x*的中介函数值f(x*)。运算逻辑单元计算缩减数值x*及中介函数值f(x*)的乘积作为三角函数的计算结果。
附图说明
图1是依据本发明实施例的三角函数计算装置的硬件架构图。
图2是依据本发明实施例的三角函数计算的方法流程图。
图3是依据本发明实施例的三角函数计算的方法流程图。
具体实施方式
以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
在权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
一般来说,图形处理单元包含运算逻辑单元(ALU,ArithmeticLogicUnit),用以协同特殊函数处理单元(SFU,SpecialfunctionUnit)完成三角函数的计算。在一些实施方式,运算逻辑单元可经由32位的特殊函数处理单元直接计算sin(x*)或cos(x*),x*介于0至2/π之间。然而,计算结果并无法满足通用计算图形处理单元所需的准确度(<=4ULP,UnitofLeastPrecision)。本发明实施例提出一种硬件架构,用以提供通用计算图形处理单元所需准确度的三角函数计算结果。图1是依据本发明实施例的三角函数计算装置的硬件架构图。三角函数计算装置10包含特殊函数处理单元110及运算逻辑单元130。运算逻辑单元130指示特殊函数处理单元110计算中介函数值f(x*),将特殊函数处理单元110的计算结果再乘以x*,接着,输出f(x*)·x*作为sin(x)或cos(x)的结果。其中,中介函数值f(x*)为使用极小极大二次逼近(minimaxquadraticapproximation)的数值sin(x*)/x*或cos(x*)/x*
特殊函数处理单元110包含非挥发性存储装置(non-volatilememorydevice)111,储存相应于中介函数值f(x*)的查找表(LUT,Look-UpTable)。非挥发性存储装置111可为只读存储器(ROM,Read-OnlyMemory)、可抹除可程序化只读存储器(ErasableProgrammableReadOnlyMemory)、静态随机存取内存(SRAM,StaticRandomAccessMemory)等。查找表包含128(27)笔纪录(entries),每个记录储存关联于二进制值“0b0000000”至“0b1111111”中之一者的二次多项式(second-degreepolynomial)的系数C0、C1及C2。例如,关联于“0b0000000”的纪录包含C0=0xffff96b、C1=0xd28c及C2=0x1a51。关联于“0b0000010”的纪录包含C0=0xfff5b83、C1=0x41ca8及C2=0x1a4f。关联于“0b1111111”的纪录包含C0=0xa39c56b、C1=0xa2ace4及C2=0x9a2。
在计算时,范围缩减单元131计算相应于输入参数x的余数r,并储存至特殊函数处理单元110中的挥发性存储装置115。详细来说,范围缩减单元131计算相应于输入参数x的余数r(remainder),余数r可使用公式(1)计算:
r=frc(x*2/π)(1),
其中r介于0到1之间;函数运算符“frc”表示:抽取出输入数据的小数部分。接着,根据输入的指令码(opcode)判断主装置(hostdevice)请求计算sin(x)或cos(x)。若请求计算cos(x),则更使用公式(2)调整余数r:
r=1.0-r(2)
接着,使用公式(3)计算缩减数值x*:
x*=π/2*r(3)
挥发性存储装置115可为寄存器(register)、先进先出缓存器(FIFObuffer)等。挥发性存储装置115中的余数r分为二个部分:数值X1(第30位至第24位);以及数值X2(第23位至第0位)。查找单元113依据挥发性存储装置115中储存的数值X1作为索引,从非挥发性内存111搜寻到相关联的纪录,并且将纪录中的系数C0、C1及C2输出至二次多项式计算单元119。平方计算单元117读取挥发性存储装置115中的数值X2,计算数值X2的平方,并且将计算结果输出至二次多项式计算单元119。二次多项式计算单元119依据系数C0、C1及C2、数值X2及数值X2的平方计算中介函数值f(x*)。中介函数值f(x*)可使用公式(4)计算:
f(x*)=C0+C1*X2+C2*X2 2(4)
二次多项式计算单元119更将计算结果输出至运算逻辑单元130中的后计算单元133。在此须注意的是,相较于以6位或更低位表示的数值范围的系数C0、C1及C2,查找表中储存的7位表示的数值范围的系数C0、C1及C2拥有更高的精确度。计算出的中介函数值f(x*)可视为Sin(x*)/x*或Cos(x*)/x*的结果。后计算单元133可使用公式(5)计算三角函数Tout
Tout=f(x*)*x*(5)
若输入的指令码指出主装置请求计算sin(x),则计算结果Tout为sin(x*)。若输入的指令码指出主装置请求计算cos(x),则计算结果Tout为cos(x*)。
图2是依据本发明实施例的三角函数计算的方法流程图。此方法由特殊函数处理单元110及运算逻辑单元130协同完成。运算逻辑单元130于接收到主装置的三角函数计算请求后,计算相应于输入参数x的余数r,并将余数r传送给特殊函数处理单元110(步骤S210)。接着,特殊函数处理单元110计算相应于缩减数值的中介函数值f(x*),并将中介函数值f(x*)传送给运算逻辑单元130(步骤S230)。接着,运算逻辑单元130计算缩减数值x*及中介函数值f(x*)的乘积作为三角函数的计算结果,并且回复给主装置(步骤S250)。
图3是依据本发明实施例的三角函数计算的方法流程图。在接收到主装置的三角函数计算请求后,范围缩减单元131使用公式(1)计算相应于输入参数x的余数r(步骤S311)。接着,范围缩减单元131判断主装置是否请求计算cos(x)(步骤S313)。若是,范围缩减单元131使用公式(2)调整余数r(步骤S331),并使用公式(3)计算缩减数值x*(步骤S315)。否则,范围缩减单元131直接使用公式(3)计算缩减数值x*(步骤S315)。接着,运算逻辑单元130指示特殊函数处理单元110计算中介函数值f(x*)(步骤S351)。在步骤S351,详细来说,范围缩减单元131将余数r储存至特殊函数处理单元110中的挥发性存储装置115。查找单元113依据挥发性存储装置115中储存的数值X1作为索引,从非挥发性内存111搜寻到相关联的纪录,并且将纪录中的系数C0、C1及C2输出至二次多项式计算单元119。平方计算单元117读取挥发性存储装置115中的数值X2,计算数值X2的平方,并且将计算结果输出至二次多项式计算单元119。二次多项式计算单元119依据系数C0、C1及C2、数值X2及数值X2的平方使用公式(4)计算中介函数值f(x*),并且将计算结果输出至运算逻辑单元130中的后计算单元133。最后,后计算单元133使用公式(5)计算三角函数结果Tout,并且回复给主装置(步骤S353)。若输入的指令码指出主装置请求计算sin(x),则计算结果Tout为sin(x*)。若输入的指令码指出主装置请求计算cos(x),则计算结果Tout为cos(x*)。
虽然图1中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其它的附加组件,已达成更佳的技术效果。此外,虽然图2及图3的处理步骤采用特定的顺序来执行,但是在不违反发明精神的情况下,熟习此技术人士可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限制本发明。相反地,此发明涵盖了熟习此技术人士显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
【符号说明】
10三角函数计算装置;110特殊函数处理单元;
111非挥发性存储装置;113查找单元;
115挥发性存储装置;117平方计算单元;
119二次多项式计算单元;
130运算逻辑单元;131范围缩减单元;
133后计算单元;x输入参数;
r余数;x*缩减数值;
X1、X2缩减数值的部分;
C0、C1及C2二次多项式的系数;
Tout计算结果;S210~S250方法步骤;
S311~S353方法步骤。

Claims (14)

1.一种三角函数计算方法,包含:
一运算逻辑单元计算相应于一输入参数x的一余数r和一缩减数值x*;
一特殊函数处理单元计算相应于上述缩减数值x*的一中介函数值f(x*);以及
上述运算逻辑单元计算上述缩减数值x*及上述中介函数值f(x*)的乘积作为一三角函数的一计算结果。
2.如权利要求1所述的三角函数计算方法,使用以下公式计算上述缩减数值x*:
x*=π/2*frc(x*2/π)。
3.如权利要求1所述的三角函数计算方法,其中,在使用一运算逻辑单元计算相应于一输入参数x的一缩减数值x*的步骤中,更包含:
使用以下公式计算相应于上述输入参数x的一余数r:
r=frc(x*2/π);
判断一主装置是否请求计算cos(x);
当上述主装置请求计算cos(x)时,使用以下公式调整上述弧度:
r=1.0-r;以及
使用以下公式计算上述缩减数值x*:
x*=π/2*r。
4.如权利要求1所述的三角函数计算方法,其中,在使用一特殊函数处理单元计算相应于上述缩减数值x*的一中介函数值f(x*)的步骤中,更包含:
依据上述余数r中的一第一数值X1作为索引,从一查找表取得一二次多项式的系数C0、C1及C2
取得上述余数r中的一第二数值X2;以及
使用以下公式计算上述中介函数值:
f(x*)=C0+C1*X2+C2*X2 2
5.如权利要求4所述的三角函数计算方法,其中,上述中介函数值f(x*)视为Sin(x*)/x*或Cos(x*)/x*的结果。
6.如权利要求4所述的三角函数计算方法,其中,上述第一数值X1为7位数值,以及上述第二数值X2为24位数值。
7.如权利要求6所述的三角函数计算方法,其中,上述查找表包含128笔纪录,以及每一上述纪录储存关联于二进制值“0b0000000”至“0b1111111”中之一者的上述二次多项式的系数C0、C1及C2
8.一种三角函数计算装置,包含:
一逻辑处理单元;以及
一特殊函数处理单元,耦接至上述逻辑处理单元;
其中,上述运算逻辑单元计算相应于一输入参数x的一缩减数值x*;上述特殊函数处理单元计算相应于上述缩减数值x*的一中介函数值f(x*);以及上述运算逻辑单元计算上述缩减数值及上述中介函数值的乘积作为一三角函数的一计算结果。
9.如权利要求8所述的三角函数计算装置,其中,上述运算逻辑单元更包含一范围缩减单元,用以使用以下公式计算上述缩减数值x*:
x*=π/2*frc(x*2/π)。
10.如权利要求8所述的三角函数计算装置,其中,上述运算逻辑单元更包含一范围缩减单元,用以使用以下公式计算相应于上述输入参数x的一余数:r=frc(x*2/π);判断一主装置是否请求计算cos(x);当上述主装置请求计算cos(x)时,使用以下公式调整上述余数:r=1.0-r;以及使用以下公式计算上述缩减数值:x*=π/2*r。
11.如权利要求10所述的三角函数计算装置,其中上述特殊函数处理单元更包含:
一挥发性存储装置,耦接于范围缩减单元,上述挥发性存储装置储存上述缩减数值x*;
一非挥发性存储装置,储存一查找表;
一查找单元,耦接于上述挥发性存储装置以及上述非挥发性存储装置;
一平方计算单元,耦接至上述挥发性存储装置;以及
一二次多项式计算单元,耦接查找单元、上述挥发性存储装置以及上述平方计算单元,
其中,上述查找单元依据上述余数r中的一第一数值X1作为索引,从上述查找表取得一二次多项式的系数C0、C1及C2;以及上述二次多项式计算单元从上述查找单元取得上述二次多项式的系数C0、C1及C2,从上述挥发性存储装置取得上述余数r中的一第二数值X2,从上述平方计算单元取得上述第二数值X2的平方,以及使用以下公式计算上述中介函数值:f(x*)=C0+C1*X2+C2*X2 2
12.如权利要求11所述的三角函数计算装置,其中,上述中介函数值f(x*)视为Sin(x*)/x*或Cos(x*)/x*的结果。
13.如权利要求11所述的三角函数计算装置,其中,上述第一数值X1为7位数值,以及上述第二数值X2为24位数值。
14.如权利要求13所述的三角函数计算装置,其中,上述查找表包含128笔纪录,以及每一上述纪录储存关联于二进制值“0b0000000”至“0b1111111”中之一者的上述二次多项式的系数C0、C1及C2
CN201510621326.0A 2015-09-25 2015-09-25 高精度的三角函数计算方法以及装置 Active CN105138305B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510621326.0A CN105138305B (zh) 2015-09-25 2015-09-25 高精度的三角函数计算方法以及装置
US14/883,889 US10353672B2 (en) 2015-09-25 2015-10-15 Methods and apparatuses for computing trigonometric functions with high precision
EP15190840.7A EP3147773B1 (en) 2015-09-25 2015-10-21 Methods and apparatuses for computing trigonometric functions with high precision
TW104135545A TWI625635B (zh) 2015-09-25 2015-10-29 三角函數計算方法以及裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510621326.0A CN105138305B (zh) 2015-09-25 2015-09-25 高精度的三角函数计算方法以及装置

Publications (2)

Publication Number Publication Date
CN105138305A true CN105138305A (zh) 2015-12-09
CN105138305B CN105138305B (zh) 2018-11-27

Family

ID=54365963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510621326.0A Active CN105138305B (zh) 2015-09-25 2015-09-25 高精度的三角函数计算方法以及装置

Country Status (4)

Country Link
US (1) US10353672B2 (zh)
EP (1) EP3147773B1 (zh)
CN (1) CN105138305B (zh)
TW (1) TWI625635B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783756A (zh) * 2016-08-31 2018-03-09 深圳市中兴微电子技术有限公司 一种获取角度相关值的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090265408A1 (en) * 2003-12-03 2009-10-22 Marvell World Trade Ltd. Methods and apparatus for performing calculations using reduced-width data
CN103150137A (zh) * 2013-03-01 2013-06-12 北京理工大学 一种覆盖全圆周角度的单精度浮点三角函数的实现方法
CN103699518A (zh) * 2013-12-26 2014-04-02 北京无线电计量测试研究所 一种三角函数的近似计算方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6640237B1 (en) 1999-07-27 2003-10-28 Raytheon Company Method and system for generating a trigonometric function
US8190669B1 (en) * 2004-10-20 2012-05-29 Nvidia Corporation Multipurpose arithmetic functional unit
CN102262525B (zh) 2011-08-29 2014-11-19 孙瑞玮 基于矢量运算的矢量浮点运算装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090265408A1 (en) * 2003-12-03 2009-10-22 Marvell World Trade Ltd. Methods and apparatus for performing calculations using reduced-width data
CN103150137A (zh) * 2013-03-01 2013-06-12 北京理工大学 一种覆盖全圆周角度的单精度浮点三角函数的实现方法
CN103699518A (zh) * 2013-12-26 2014-04-02 北京无线电计量测试研究所 一种三角函数的近似计算方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783756A (zh) * 2016-08-31 2018-03-09 深圳市中兴微电子技术有限公司 一种获取角度相关值的方法和装置

Also Published As

Publication number Publication date
EP3147773B1 (en) 2017-12-06
TW201712570A (zh) 2017-04-01
EP3147773A1 (en) 2017-03-29
TWI625635B (zh) 2018-06-01
US20170090871A1 (en) 2017-03-30
CN105138305B (zh) 2018-11-27
US10353672B2 (en) 2019-07-16

Similar Documents

Publication Publication Date Title
KR102359265B1 (ko) 프로세싱 장치 및 프로세싱 장치에서 연산을 수행하는 방법
CN103959192A (zh) 用于估算超越函数的数学电路
CN112286772B (zh) 归因分析方法、装置和电子设备
US20210254995A1 (en) Methods, apparatuses, systems, and storage media for storing and loading visual localization maps
US8805914B2 (en) Method and apparatus for performing numerical calculations
Heikalabad et al. Midpoint memory: a special memory structure for data-oriented models implementation
US6240338B1 (en) Seed ROM for reciprocal computation
US20190235834A1 (en) Optimization apparatus and control method thereof
Capizzano Automatic generation of locally refined Cartesian meshes: Data management and algorithms
US20210109711A1 (en) Processor and method for processing mask data
CN110390072A (zh) 业务数值计算方法、装置、计算机设备和存储介质
Wang et al. The Magnus expansion for stochastic differential equations
CN116028013A (zh) 一种fpga除法运算的优化方法、装置、除法器和介质
CN105677645A (zh) 一种数据表比对方法和装置
CN105138305A (zh) 高精度的三角函数计算方法以及装置
US10095630B2 (en) Sequential access to page metadata stored in a multi-level page table
CN112861239A (zh) 数值模型的初始地应力平衡方法、系统、设备及存储介质
CN110633447B (zh) 基于fpga的球面距离定点计算方法及其计算装置
Mora-Mora et al. Mathematical model of stored logic based computation
Ivanov et al. Fast memory efficient evaluation of spherical polynomials at scattered points
US20220171602A1 (en) Integrated circuit for constant multiplication and device including the same
Bonnot et al. New non-uniform segmentation technique for software function evaluation
CN103942162B (zh) 在存储器中进行多访问的方法、装置和存储系统
Shih et al. Design and implementation of decision-tree (DT) online training hardware using divider-free GI calculation and speeding-up double-root classifier
US6389443B1 (en) Method and apparatus for an efficient square-root computation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211202

Address after: Room 201, No. 2557, Jinke Road, pilot Free Trade Zone, Pudong New Area, Shanghai 201203

Patentee after: Gryfield Intelligent Technology Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.

TR01 Transfer of patent right