Methods and apparatuses for computing trigonometric functions with high precision

US10353672B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10353672-B2
Application numberUS-201514883889-A
CountryUS
Kind codeB2
Filing dateOct 15, 2015
Priority dateSep 25, 2015
Publication dateJul 16, 2019
Grant dateJul 16, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for computing trigonometric functions, performed by an ALU (Arithmetic Logic Unit) in coordination with an SFU (Special Function Unit), is introduced to contain at least the following steps. The ALU computes a remainder r and a reduction value x* corresponding to an input parameter x. The SFU computes an intermediate function f(x*) corresponding to the reduction value x*. The ALU computes a multiplication of the reduction value x* by the intermediate function f(x*) as the computation result of a trigonometric function.

First claim

Opening claim text (preview).

What is claimed is: 1. A method implemented by a GPU (Graphics Processing Unit) for computing trigonometric functions in three-dimensional graphics Application Programming Interfaces (APIs), comprising: computing, by a range reduction unit of an ALU (Arithmetic Logic Unit), a remainder r and a reduction value x* corresponding to an input parameter x; communicating the remainder r to an SFU (Special Function Unit); computing, by the SFU, an intermediate function f(x*) corresponding to the reduction value x*; communicating the intermediate function f(x*) to the ALU; and computing, by a post-computation unit of the ALU, a multiplication of the reduction value x* by the intermediate function f(x*) as a computation result of a trigonometric function, wherein the reduction value x* is computed by an Equation: x* =π/2* frc ( x* 2/π). 2. The method of claim 1 , wherein the step for computing, by a range reduction unit of an ALU (Arithmetic Logic Unit), a remainder r and a reduction value x* corresponding to an input parameter x, further comprises: computing the remainder r corresponding to the input parameter x using an Equation: r=frc ( x *2/π); determining whether a host requests that cos(x) be computed; when the host requests that cos(x) be computed, adjusting the remainder r using an Equation: r= 1.0 −r ; and computing the reduction value x* using an Equation: x*=π /2 *r. 3. The method of claim 1 , wherein the step for computing, by an SFU (Special Function Unit), an intermediate function f(x*) corresponding to the reduction value x*, further comprises: obtaining coefficients C 0 , C 1 and C 2 of a second-degree polynomial from a LUT (Look-Up Table) according to a first magnitude X 1 of the remainder r as an index; obtaining a second magnitude X 2 of the remainder r; and computing the intermediate function f(x*) using an Equation: f ( x* )= C 0 +C 1 *X 2 +C 2 *X 2 2 . 4. The method of claim 3 , wherein the intermediate function f(x*) is a result of Sin(x*)/x* or Cos(x*)/x*. 5. The method of claim 3 , wherein the first magnitude X 1 is 7 bits and the second magnitude X 2 is 24 bits. 6. The method of claim 5 , wherein the LUT comprises 128 records and each record stores the coefficients C 0 , C 1 and C 2 of the second-degree polynomial associated with one of binary values from “0b0000000” to “0b1111111”. 7. An apparatus in a GPU (Graphics Processing Unit) for computing trigonometric functions in three-dimensional graphics Application Programming Interfaces (APIs), comprising: an ALU (Arithmetic Logic Unit); and an SFU (Special Function Unit), coupled to the ALU, wherein the ALU includes range reduction circuitry configured to compute a remainder r and a reduction value x* corresponding to an input parameter x; the SFU includes second-degree-polynomial computation circuitry configured to compute an intermediate function f(x*) corresponding to the reduction value x*; and the ALU includes post-computation circuitry configured to compute a multiplication of the reduction value x* by the intermediate function f(x*) as a computation result of a trigonometric function, wherein the reduction value x* is computed by an Equation: x* =π/2* frc ( x* 2/π). 8. The apparatus of claim 7 , wherein the ALU is configured to compute the remainder r corresponding to the input parameter x using an Equation: r=frc(x*2/π); determines whether a host requests that cos(x) be computed; when the host requests that cos(x) be computed, adjusts the remainder r using an Equation: r=1.0−r; and computes the reduction value x* using an Equation: x*=π/2*r. 9. The apparatus of claim 8 , wherein the SFU further comprises: a volatile memory device, coupled to the ALU, storing the remainder r; a non-volatile memory device, storing a LUT (Look-Up Table); and wherein the SFU obtains coefficients C 0 , C 1 and C 2 of a second-degree polynomial from the LUT according to a first magnitude X 1 of the remainder r as an index; obtains the coefficients C 0 , C 1 and C 2 of the second-degree polynomial; obtains a second magnitude X 2 of the remainder r from the volatile memory device; obtains a square of the second magnitude X 2 from the square computation unit; and computes the intermediate function f(x*) using an Equation: f(x*)=C 0 +C 1 *X 2 +C 2 *X 2 2 . 10. The apparatus of claim 9 , wherein the intermediate function f(x*) is a result of Sin(x*)/x* or Cos(x*)/x*. 11. The apparatus of claim 9 , wherein the first magnitude X 1 is 7 bits and the second magnitude X 2 is 24 bits. 12. The apparatus of claim 11 , wherein the LUT comprises 128 records and each record stores the coefficients C 0 , C 1 and C 2 of the second-degree polynomial associated with one of binary values from “0b0000000” to “0b1111111”.

Assignees

Inventors

Classifications

  • G06F7/548Primary

    Trigonometric functions; Co-ordinate transformations · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10353672B2 cover?
A method for computing trigonometric functions, performed by an ALU (Arithmetic Logic Unit) in coordination with an SFU (Special Function Unit), is introduced to contain at least the following steps. The ALU computes a remainder r and a reduction value x* corresponding to an input parameter x. The SFU computes an intermediate function f(x*) corresponding to the reduction value x*. The ALU compu…
Who is the assignee on this patent?
Via Alliance Semiconductor Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F7/548. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 16 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).