Computing device performance of low precision arithmetic functions with arrays of pre-calculated values
First Claim
1. A method of improving computing device performance of arithmetic functions comprising:
- generating, for a first set of numeric input values, a first set of numeric solution values, wherein each numeric solution value, in the first set of numeric solution values, is a solution to a first arithmetic function given a specific, unique numeric input value of the first set of numeric input values;
storing the first set of numeric solution values into an array such that each cell of the array corresponds to one of the input numeric values, from the first set of numeric input values, and has stored therein a numeric solution value, from the first set of numeric solution values, which is the solution to the first arithmetic function given the corresponding one of the input numeric values;
receiving, subsequent to the generating and the storing, a request to perform the first arithmetic function for a first provided numeric input value;
contingent upon the first provided numeric input value being one of the first set of numeric input values, identifying a cell of the array corresponding to the first provided numeric input value and providing, in response to the request, the numeric solution value, from the first set of numeric solution values, that is stored in the identified cell;
contingent upon the first provided numeric input value being one of a second set of numeric input values, providing a first numeric solution value that is the solution to the first arithmetic function for each of the second set of numeric input values, wherein the first and second sets of numeric input values are wholly exclusive of one another;
wherein each numeric input value, of the first and second sets of numeric input values, is represented by a predefined quantity of bits in accordance with a predefined computer number format; and
wherein the first set of numeric input values, and, separately, the second set of numeric input values are contiguous such that, given the predefined quantity of bits, the predefined computer number format cannot represent another numeric value between two adjacent input numeric values of the first set of numeric input values or between two adjacent input numeric values of the second set of numeric input values.
1 Assignment
0 Petitions
Accused Products
Abstract
Reduced precision computer number formats inherently limit the quantity of discrete numeric values that can be represented. Therefore, the solution values of an arithmetic function, for each numeric value that is individually and uniquely expressible utilizing such a reduced precision computer number format, can be precomputed since the quantity of unique solution values can be limited to a quantity that can be conveniently stored, such as in an array. Subsequently, rather than computing the solution value of such an arithmetic function, for a given input value, the precomputed array can be referenced and a solution value corresponding to the given input value can be read from the array. Reading numeric values from an array can be substantially faster than computing solution values of a computationally-expensive arithmetic function.
-
Citations
20 Claims
-
1. A method of improving computing device performance of arithmetic functions comprising:
-
generating, for a first set of numeric input values, a first set of numeric solution values, wherein each numeric solution value, in the first set of numeric solution values, is a solution to a first arithmetic function given a specific, unique numeric input value of the first set of numeric input values; storing the first set of numeric solution values into an array such that each cell of the array corresponds to one of the input numeric values, from the first set of numeric input values, and has stored therein a numeric solution value, from the first set of numeric solution values, which is the solution to the first arithmetic function given the corresponding one of the input numeric values; receiving, subsequent to the generating and the storing, a request to perform the first arithmetic function for a first provided numeric input value; contingent upon the first provided numeric input value being one of the first set of numeric input values, identifying a cell of the array corresponding to the first provided numeric input value and providing, in response to the request, the numeric solution value, from the first set of numeric solution values, that is stored in the identified cell; contingent upon the first provided numeric input value being one of a second set of numeric input values, providing a first numeric solution value that is the solution to the first arithmetic function for each of the second set of numeric input values, wherein the first and second sets of numeric input values are wholly exclusive of one another; wherein each numeric input value, of the first and second sets of numeric input values, is represented by a predefined quantity of bits in accordance with a predefined computer number format; and wherein the first set of numeric input values, and, separately, the second set of numeric input values are contiguous such that, given the predefined quantity of bits, the predefined computer number format cannot represent another numeric value between two adjacent input numeric values of the first set of numeric input values or between two adjacent input numeric values of the second set of numeric input values. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A microprocessor comprising:
-
a first logic circuitry for detecting when a first provided numeric input value is one of a first set of numeric input values and, in response, identifying a cell of an array corresponding to the first provided numeric input value; a second logic circuitry for detecting when the first provided numeric input value is one of a second set of numeric input values and, in response, returning a first numeric solution value that is the solution to a first arithmetic function given any one of the second set of numeric input values, wherein the first and second sets of numeric input values are wholly exclusive of one another; and storage circuitry having the array encoded thereon, the array comprising a first set of numeric solution values, wherein each numeric solution value, in the first set of numeric solution values, is a solution to the first arithmetic function given a specific, unique numeric input value of the first set of numeric input values, the first set of numeric solution values being stored in the array; wherein each numeric input value, of the first and second set of numeric input values, is represented by a predefined quantity of bits in accordance with a predefined computer number format, the first and second subsets being wholly exclusive of one another; wherein the first set of numeric input values, and, separately, the second set of numeric input values are contiguous such that, given the predefined quantity of bits, the predefined computer number format cannot represent another numeric value between two adjacent input numeric values of the first set of numeric input values or between two adjacent input numeric values of the second set of numeric input values; and wherein the microprocessor performs the first arithmetic function by receiving the first provided numeric input value, returning the first numeric solution value if the first provided numeric input value is one of the second set of numeric input values, and returning the numeric solution value that is stored in the identified cell if the first provided numeric input value is one of the first set of numeric input values. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computing device comprising:
-
one or more processing units; a first computer-readable storage medium having an array encoded thereon, the array comprising a first set of numeric solution values, wherein each numeric solution value, in the first set of numeric solution values, is a solution to a first arithmetic function given a specific, unique numeric input value of a first set of numeric input values, the first set of numeric solution values being stored in the array such that each cell of the array corresponds to one of the input numeric values, from the first set of numeric input values, and has stored therein a numeric solution value, from the first set of numeric solution values, which is the solution to the first arithmetic function given the corresponding one of the input numeric values; and a second computer-readable storage medium comprising computer-executable instructions which, when executed by the one or more processing units, cause the computing device to; receive a request to perform the first arithmetic function for a first provided numeric input value; contingent upon the first provided numeric input value being one of the first set of numeric input values, identify a cell of the array corresponding to the first provided numeric input value and provide, in response to the request, the numeric solution value, from the first set of numeric solution values, that is stored in the identified cell; contingent upon the first provided numeric input value being one of a second set of numeric input values, provide a first numeric solution value that is the solution to the first arithmetic function for each of the second set of numeric input values, wherein the first and second sets of numeric input values are wholly exclusive of one another; wherein each numeric input value, of the first and second sets of numeric input values, is represented by a predefined quantity of bits in accordance with a predefined computer number format; wherein the first set of numeric input values, and, separately, the second set of numeric input values are contiguous such that, given the predefined quantity of bits, the predefined computer number format cannot represent another numeric value between two adjacent input numeric values of the first set of numeric input values or between two adjacent input numeric values of the second set of numeric input values. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification