IP Library Granted Patent US 10,489,113
Granted Patent B2
US 10,489,113 · App. 15/773,959 · Granted Nov 26, 2019

Quick operation device for nonlinear function, and method therefor

Inventors: Shijin Zhang (Beijing, CN); Tao Luo (Beijing, CN); Shaoli Liu (Beijing, CN); Yunji Chen (Beijing, CN)
Assignee: Institute of Computing Technology, Chinese Academy of Sciences
G06F5/01G06F7/50G06F7/523G06F7/57G06F16/9017G06F17/11
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,489,113
App. No.
15/773,959
Granted
Nov 26, 2019
Kind
B2
Abstract

The present disclosure provides a quick operation device for a nonlinear function, and a method therefor. The device comprises: a domain conversion part for converting an input independent variable into a corresponding value in a table lookup range; a table lookup part for looking up a slope and an intercept of the corresponding piecewise linear fitting based on the input independent variable or an independent variable processed by the domain conversion part; and a linear fitting part for obtaining, a final result in a way of linear fitting based on the slope and the intercept obtained, by means of table lookup, by the table lookup part. The present disclosure solves the problems of slow operation speed, large area of the operation device, and high power consumption caused by the traditional method.

Claims (75)

1. A quick operation device for a nonlinear function, comprising:

a domain conversion part for converting an input independent variable into a corresponding value in a table lookup range;

a table lookup part for looking up a slope and an intercept of a corresponding piecewise linear fitting based on the input independent variable or the independent variable processed by the domain conversion part; and

a linear fitting part for obtaining a final result in a way of linear fitting based on the slope and the intercept obtained, by means of table lookup, by the table lookup part;

wherein the domain conversion part is for conversion of a domain, and has three inputs x, i, and j, x is an independent variable of a nonlinear function, i and j are two constants associated with a domain range of the nonlinear function, and new_x is an output result after a domain is converted, an operation realized by the domain conversion part is new_x=x*i+j;

operations realized by the table lookup part are index=x[P:Q], k=Table_k[index], and b=Table_b[index], x[P:Q] is the bits P-Q of x, Table_k and Table_b store the slope and the intercept of a straight line which is a piecewise linear fitting of a nonlinear function;

an operation realized by the linear fitting part is f(x)=k*new_x+b.

2. The quick operation device for a nonlinear function according to claim 1 , wherein the domain conversion part comprises:

a first multiplier for scaling the input independent variable;

a first adder for shifting the scaled independent variable.

3. The quick operation device for a nonlinear function according to claim 1 , wherein the linear fitting part comprises:

a second multiplier for performing a multiply operation based on the slope and the input independent variable, or the independent variable processed by the domain conversion part to obtain an operation result;

a second adder for performing an addition operation based on the operation result and the intercept to obtain the final result.

4. The quick operation device for a nonlinear function according to claim 1 , further comprising:

a first independent variable selector for selecting an independent variable used when the table lookup part performs processing.

5. The quick operation device for a nonlinear function according to claim 3 , further comprising:

a second independent variable selector for selecting an independent variable used when the second multiplier performs the multiply operation.

6. A method for using a quick operation device for a nonlinear function, wherein the quick operation device for a nonlinear function comprises:

a domain conversion part for converting an input independent variable into a corresponding value in a table lookup range;

a table lookup part for looking up a slope and an intercept of a corresponding piecewise linear fitting based on the input independent variable or the independent variable processed by the domain conversion part; and

a linear fitting part for obtaining a final result in a way of linear fitting based on the slope and the intercept obtained, by means of table lookup, by the table lookup part;

the method comprising the following steps:

step one, converting an input independent variable into a corresponding value in a table lookup range;

step two, looking up a slope and an intercept of the corresponding piecewise linear fitting based on the independent variable or an independent variable processed by the domain conversion part; and

step three, obtaining a final result in a way of linear fitting based on the slope and the intercept obtained, by means of table lookup, by the table lookup part;

wherein the domain conversion part is for conversion of a domain, and has three inputs x, i, and j, x is an independent variable of a nonlinear function, i and j are two constants associated with a domain range of the nonlinear function, and new_x is an output result after a domain is converted, an operation realized by the domain conversion part is new_x=x*i+j;

operations realized by the table lookup part are index=x[P:Q], k=Table_k[index], and b=Table_b[index], x[P:Q] is the bits P-Q of x, Table_k and Table_b store the slope and the intercept of a straight line which is a piecewise linear fitting of a nonlinear function;

an operation realized by the linear fitting part is f(x)=k*new_x+b.

7. The method for using the quick operation device for a nonlinear function according to claim 6 , wherein the step one comprises:

scaling the input independent variable; and

shifting the scaled independent variable.

8. The method for using the quick operation device for a nonlinear function according to claim 6 , wherein the step two comprises:

selecting an independent variable used when the table lookup part performs processing by providing a first independent variable selector.

9. The method for using the quick operation device for a nonlinear function according to claim 6 , wherein the step three comprises:

performing a multiply operation based on the slope and the input independent variable, or the independent variable processed by the domain conversion part to obtain an operation result; and

performing an addition operation based on the operation result and the intercept to obtain the final result.

10. The method for using the quick operation device for a nonlinear function according to claim 6 , wherein the step three comprises selecting an independent variable used when performing the multiply operation by providing a second independent variable selector.

11. A processing unit comprising a quick operation device for a nonlinear function, wherein the quick operation device for a nonlinear function comprises:

a domain conversion part for converting an input independent variable into a corresponding value in a table lookup range;

a table lookup part for looking up a slope and an intercept of a corresponding piecewise linear fitting based on the input independent variable or the independent variable processed by the domain conversion part; and

a linear fitting part for obtaining a final result in a way of linear fitting based on the slope and the intercept obtained, by means of table lookup, by the table lookup part;

wherein the domain conversion part is for conversion of a domain, and has three inputs x, i, and j, x is an independent variable of a nonlinear function, i and j are two constants associated with a domain range of the nonlinear function, and new_x is an output result after a domain is converted, an operation realized by the domain conversion part is new_x=x*i+j;

operations realized by the table lookup part are index=x[P:Q], k=Table_k[index], and b=Table_b[index], x[P:Q] is the bits P-Q of x, Table_k and Table_b store the slope and the intercept of a straight line which is a piecewise linear fitting of a nonlinear function;

an operation realized by the linear fitting part is f(x)=k*new_x+b.

12. The processing unit comprising the quick operation device for a nonlinear function according to claim 11 , wherein the domain conversion part comprises:

a first multiplier for scaling the input independent variable; and

a first adder for shifting the scaled independent variable.

13. The processing unit comprising the quick operation device for a nonlinear function according to claim 11 , wherein the linear fitting part comprises:

a second multiplier for performing a multiply operation based on the slope and the input independent variable, or the independent variable processed by the domain conversion part to obtain an operation result; and

a second adder for performing an addition operation based on the operation result and the intercept to obtain the final result.

14. The processing unit comprising the quick operation device for a nonlinear function according to claim 11 , further comprising:

a first independent variable selector for selecting an independent variable used when the table lookup part performs processing.

15. The processing unit comprising the quick operation device for a nonlinear function according to claim 13 , further comprising:

a second independent variable selector for selecting an independent variable used when the second multiplier performs the multiply operation.

16. A method for a nonlinear function by using a processing unit, wherein the processing unit is a central processor unit or a graphic processor unit, the central processor unit or the graphic processor unit comprising:

a domain conversion part for converting an input independent variable into a corresponding value in a table lookup range;

a table lookup part for looking up a slope and an intercept of a corresponding piecewise linear fitting based on the input independent variable or the independent variable processed by the domain conversion part; and

a linear fitting part for obtaining a final result in a way of linear fitting based on the slope and the intercept obtained, by means of table lookup, by the table lookup part;

the method comprising the following steps:

step one, converting an input independent variable into a corresponding value in a table lookup range;

step two, looking up a slope and an intercept of the corresponding piecewise linear fitting based on the independent variable or an independent variable processed by the domain conversion part; and

step three, obtaining a final result in a way of linear fitting based on the slope and the intercept obtained, by means of table lookup, by the table lookup part;

wherein the domain conversion part is for conversion of a domain, and has three inputs x, i, and j, x is an independent variable of a nonlinear function, i and j are two constants associated with a domain range of the nonlinear function, and new_x is an output result after a domain is converted, an operation realized by the domain conversion part is new_x=x*i+j;

operations realized by the table lookup part are index=x[P:Q], k=Table_k[index], and b=Table_b[index], x[P:Q] is the bits P-Q of x, Table_k and Table_b store the slope and the intercept of a straight line which is a piecewise linear fitting of a nonlinear function;

an operation realized by the linear fitting part is f(x)=k*new_x+b.

17. The method for a nonlinear function by using the processing unit according to claim 16 , wherein the step one comprises:

scaling the input independent variable; and

shifting the scaled independent variable.

18. The method for a nonlinear function by using the processing unit according to claim 16 , wherein the step two comprises:

selecting an independent variable used when the table lookup part performs processing by providing a first independent variable selector.

19. The method for a nonlinear function by using the processing unit according to claim 16 , wherein the step three comprises:

performing a multiply operation based on the slope and the input independent variable, or the independent variable processed by the domain conversion part to obtain an operation result; and

performing an addition operation based on the operation result and the intercept to obtain the final result.

20. The method for a nonlinear function by using the processing unit according to claim 16 , wherein the step three comprises:

selecting an independent variable used when performing the multiply operation by providing a second independent variable selector.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2018
From: ZHANG, SHIJIN; LUO, TAO; LIU, SHAOLI; CHEN, YUNJI
To: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES
Reel/Frame 045758/0899 →
Priority Claims (1)
CN 2015 1 0849130 · Nov 27, 2015 · national
Continuity (1)
Related Publication 20180329681A1 · Nov 15, 2018