Claims
- 1. A complex multiplier providing a complex product of a first complex input, includes a first component input collection comprising an A1R and an A1I, and a second complex number defined by a Log A2R and an Log A2I, comprising:
a collection of logarithm calculators, receiving said first complex input to create a first complex log version number; a collection of adders, adding said first complex log version number to said Log A2R to create a Log A1RA2R and a Log A1IA2R while adding said first complex log version number to said Log A2I to create a Log A1IA2I and a Log A1RA2I; a collection of exponential calculators, exponentiating each member of a complex log component collection to create a corresponding member of a complex numeric component collection; a second collection of adders, creating said complex product from said complex numeric component collection; and wherein said complex log component collection includes said Log A1RA2R and said Log A1IA2I, said Log A1IA2R and said Log A1RA2I; wherein said complex numeric component collection includes an A1RA2R, an A1IA2I, an A1IA2R, and an A1RA2I; wherein said complex product includes an A12R and an A12I; wherein said first complex log version number includes a Log A1R and a Log A1I; wherein said second adder collection, creating said complex product is further comprised of:
a first member, subtracting said A1IA2I from said A1RA2R to create said A12R; and a second member, adding said A1IA2R to said A1RA2I to create said A12I; wherein said collection of logarithm calculators, receiving said first complex input is further comprised of:
a first member, calculating a logarithm of said A1R to create said Log A1R; and a second member, calculating a logarithm of said A1I to create said Log A1I; wherein said exponential calculator collection is comprised of:
a first member, calculating an exponentiation of an input as said Log A1RA2R to create said A1RA2R; a second member, calculating said exponentiation of said input as said Log A1IA2I to create said A1IA2I; a third member, calculating said exponentiation of said input as said Log A1IA2R to create said A1IA2R; and a fourth member, calculating said exponentiation of said input as said Log A1RA2I to create said A1RA2I.
- 2. The apparatus of claim 1,
wherein at least one of said logarithm calculator members is comprised of at least one member of a logarithm calculator component collection comprising: a logic circuit aligning said component input to access a table and drive an arithmetic circuit fed by said table; wherein said table is implemented as at least one member of a collection comprising a memory, a combinatorial logic network, and a second combinatorial logic network feed by at least one member of the collection including said memory and said combinatorial logic network.
- 3. The apparatus of claim 1,
wherein at least one of said exponential calculator collection members, is comprised of at least one member of an exponential calculator component collection comprising: a table, an arithmetic circuit fed by said table, a logic circuit operating upon an output of said arithmetic circuit to establish at least negation and zero for said exponentiation; wherein said table is implemented as at least one member of a collection comprising a memory, a combinatorial logic network, and a second combinatorial logic network feed by at least one members of the collection including said memory and said combinatorial logic network.
- 4. The apparatus of claim 1,
wherein at least one of said exponential calculator collection members, is further comprised of:
said member, calculating said exponentiation of said input as a member of a non-log-value collection; wherein said non-log-value collection is comprised of the members of said complex numeric component, and the members of said first component input collection, said A12R, and said A12I.
- 5. The apparatus of claim 1, further comprising:
circuitry providing at least one member of a log-value collection; and wherein said log-value collection is comprised of said Log A1R, said Log A1I, said Log A1RA2R, said Log A1IA2I, said Log A1IA2R, and said Log A1RA2I.
- 6. The apparatus of claim 5,
wherein said circuitry providing said log-value collection member is comprised of at least one member of the collection comprising:
circuitry providing said Log A1R; circuitry providing said Log A1I; circuitry providing said Log A1RA2R; circuitry providing said Log A1IA2I; circuitry providing said Log A1IA2R; and circuitry providing said Log A1RA2I.
- 7. The apparatus of claim 1, further comprising at least one member of the collection comprising, for each of said complex numeric component collection members:
circuitry providing said complex numeric component collection member.
- 8. The apparatus of claim 7, further comprising:
circuitry providing said complex numeric component collection member, for each of said complex numeric component collection members; circuitry providing said Log A1R; and circuitry providing said Log A1I.
- 9. An apparatus acting as an FFT radix engine for performing at least an FFT radix operation based upon said first complex input of claim 1, comprising:
said complex multiplier providing said complex product using said Log A2R and said Log A2I to define said second complex input; and said apparatus further comprising, for each of at least two current complex values, of:
circuitry creating a new complex value based upon said current complex value, a control for said current complex value, said complex input, and said complex product.
- 10. The apparatus of claim 9,
wherein said complex multiplier is further comprised of:
circuitry providing at least one member of a log-value collection; wherein said log-value collection is comprised of said Log A1R, said Log A1I, said Log A1RA2R, said Log A1IA2I, said Log A1IA2R, and said Log A1RA2I; wherein said circuitry creating at least one of said new complex values is further comprised of:
means for creating at least a component of said current complex value based upon said current complex value, said control, said complex input, said complex product and said provided log-value collection member.
- 11. The apparatus of claim 9, wherein said FFT radix operation includes at least an FFT Radix 2 operation.
- 12. The apparatus of claim 9,
wherein said FFT radix operation includes at least an FFT Radix 4 operation; and wherein said circuitry receiving said current complex values is further comprised of:
said circuitry receiving at least four of said current complex values.
- 13. The apparatus of claim 9,
wherein said FFT radix operation includes at least an FFT Radix 8 operation; and said apparatus is further comprised of:
circuitry calculating a second complex product based upon at least one member of the collection comprising said first complex input and said complex product; wherein said circuitry receiving said current complex values is further comprised of:
said circuitry receiving at least eight of said current complex values; wherein for each of said current complex values, said circuitry creating said new complex value is further comprised of:
said circuitry creating said current complex value based upon said control, said complex input, and at least one member of the collection comprising said complex product and said second complex product.
- 14. The apparatus of claim 13,
wherein said circuitry calculating said second complex product is further comprised of at least one member of the collection comprising:
circuitry calculating said second complex product as a multiple of said complex product; and a second of said complex multipliers providing said second complex product from said complex input.
- 15. The apparatus of claim 14,
wherein said circuitry calculating said second complex product as said multiple is comprised of a member of the collection comprising:
said circuitry calculating a fixed multiple of said complex product to create said second complex product; and a third of said complex multipliers receiving said complex input as said complex product and said second complex input approximating said fixed multiple.
- 16. The apparatus of claim 1, further comprising a member of the collection comprising:
a second of said logarithm calculator collections, receiving said second complex input to create said Log A2R and said Log A2I; and an input generator providing said Log A2R and said Log A2I.
- 17. An apparatus providing a complex product of a first complex input and a second complex number defined by a Log A2R and an Log A2I, comprising:
means for receiving said first complex input to create a first complex log version number; means for adding said first complex log version number to said Log A2R of said second complex number to create a Log A1RA2R and a Log A1IA2I while adding said first complex log version number to said Log A2I of said second complex number to create a Log A1IA2R and a Log A1RA2I; means for exponentiating each of member of a complex log component collection to create a corresponding member of a complex numeric component collection; means for creating said complex product from said complex numeric component collection; and wherein said complex log component collection includes said Log A1RA2R, said Log A1IA2I, said Log A1IA2R and said Log A1RA2I; wherein said complex numeric component collection includes an A1RA2R, an A1IA2I, an A1IA2R, and an A1RA2I; wherein said complex product includes an A12R and an A12I; wherein said first complex input includes a first component input collection comprising an A1R and an A1I; wherein said first complex log version number includes a Log A1R and a Log A1I.
- 18. The apparatus of claim 17,
wherein the means for creating said complex product is further comprised of:
means for subtracting said A1IA2I from said A1RA2R to create said A12R; and means for adding said A1IA2R to said A1RA2I to create said A12I;
- 19. The apparatus of claim 17,
wherein the means for receiving said first complex input is further comprised of:
means for calculating a logarithm of said A1R to create said Log A1R; and means for calculating a logarithm of said A1I to create said Log A1I.
- 20. The apparatus of claim 19,
wherein at least one of the means for calculating said logarithm is comprised of at least one member of a logarithm calculator component collection comprising: a logic circuit aligning said component input to access a table and drive an arithmetic circuit fed by said table; wherein said table is implemented as at least one member of a collection comprising a memory, a combinatorial logic network, and a second combinatorial logic network feed by at least one member of the collection including said memory and said combinatorial logic network.
- 21. The apparatus of claim 17,
wherein the means for exponentiating is further comprised of:
means for calculating an exponentiation of an input as said Log A1RA2R to create said A1RA2R; means for calculating said exponentiation of said input as said Log A1IA2I to create said A1IA2I; means for calculating said exponentiation of said input as said Log A1IA2R to create said A1IA2R; and means for calculating said exponentiation of said input as said Log A1RA2I to create said A1RA2I.
- 22. The apparatus of claim 21,
wherein at least one of the means for calculating said exponentiation is comprised of at least one member of an exponential calculator component collection comprising: a table, an arithmetic circuit fed by said table, a logic circuit operating upon an output of said arithmetic circuit to establish at least negation and zero for said exponentiation; wherein said table is implemented as at least one member of a collection comprising a memory, a combinatorial logic network, and a second combinatorial logic network fed by at least one member of the collection including said memory and said combinatorial logic network.
- 23. The apparatus of claim 21,
wherein at least one of the means for calculating said exponentiation is further comprised of:
means for calculating said exponentiation of said input as a member of a non-log-value collection; wherein said non-log-value collection is comprised of the members of said complex numeric component, and the members of said first component input collection, said A12R, and said A12I.
- 24. The apparatus of claim 17, further comprising:
means for providing at least one member of a log-value collection; and wherein said log-value collection is comprised of said Log A1R, said Log A1I, said Log A1RA2R, said Log A1IA2I, said Log A1IA2R, and said Log A1RA2I.
- 25. The apparatus of claim 24,
wherein the means for providing said log-value collection member is comprised of at least one member of the collection comprising:
means for providing said Log A1R; means for providing said Log A1I; means for providing said Log A1RA2R; means for providing said Log A1IA2I; means for providing said Log A1IA2R; and means for providing said Log A1RA2I.
- 26. The apparatus of claim 17, further comprising at least one member of the collection comprising, for each of said complex numeric component collection members:
means for providing said complex numeric component collection member.
- 27. The apparatus of claim 26, further comprising:
means for providing said complex numeric component collection member, for each of said complex numeric component collection members; means for providing said Log A1R; and means for providing said Log A1I.
- 28. An FFT radix engine for performing at least an FFT radix operation based upon said first complex input of claim 17, comprising:
the means of providing said complex product using said Log A2R and said imaginary plane-log-version to define said second complex input:
means for receiving at least two current complex values; and, said apparatus further comprising, for each of said current complex values, of:
means for receiving a control for said current complex value; and means for creating a new complex value based upon said current complex value, said control, said complex input, and said complex product.
- 29. The apparatus of claim 28,
wherein said means providing said complex product is further comprised of:
means for providing at least one member of a log-value collection; wherein said log-value collection is comprised of said Log A1R, said Log A1I, said Log A1RA2R, said Log A1IA2I, said Log A1IA2R, and said Log A1RA2I; wherein the means for creating at least one of said new complex values is further comprised of:
means for creating at least a component of said current complex value based upon said current complex value, said control, said complex input, said complex product and said provided log-value collection member.
- 30. The apparatus of claim 28, wherein said FFT radix operation includes at least an FFT Radix 2 operation.
- 31. The apparatus of claim 28,
wherein said FFT radix operation includes at least an FFT Radix 4 operation; and wherein the means for receiving said current complex values is further comprised of:
means for receiving at least four of said current complex values.
- 32. The apparatus of claim 28,
wherein said FFT radix operation includes at least an FFT Radix 8 operation; and said apparatus is further comprised of:
means for calculating a second complex product based upon at least one member of the collection comprising said first complex input and said complex product; wherein the means for receiving said current complex values is further comprised of:
means for receiving at least eight of said current complex values; wherein for each of said current complex values, the means for creating said new complex value is further comprised of:
means for creating said current complex value based upon said control, said complex input, and at least one member of the collection comprising said complex product and said second complex product.
- 33. The apparatus of claim 32,
wherein the means for calculating said second complex product is further comprised of at least one member of the collection comprising:
means for calculating said second complex product as a multiple of said complex product; and a second of said means of claim 17 providing said second complex product from said complex input.
- 34. The apparatus of claim 33,
wherein the means for calculating said second complex product as said multiple is comprised of a member of the collection comprising:
means for calculating a fixed multiple of said complex product to create said second complex product; and a third of said means of claim 17 receiving said complex input as said complex product and said second complex input approximating said fixed multiple.
- 35. The apparatus of claim 17, further comprising a member of the collection comprising:
a second of said means for receiving said second complex input to create said Log A2R and said Log A2I; and means for generating said Log A2R and said Log A2I.
- 36. A method providing a complex product of a first complex input and a second complex number defined by a Log A2R and an Log A2I, comprising the steps of:
receiving said first complex input to create a first complex log version number; adding said first complex log version number to said Log A2R of said second complex number to create a Log A1RA2R and a Log A1IA2I while adding said first complex log version number to said Log A2I of said second complex number to create a Log A1IA2R and a Log A1RA2I; exponentiating each of member of a complex log component collection to create a corresponding member of a complex numeric component collection; and creating said complex product from said complex numeric component collection; wherein said complex log component collection includes said Log A1RA2R and said Log A1IA2I, said Log A1IA2R and said Log A1RA2I; wherein said complex numeric component collection includes an A1RA2R, an A1IA2I, an A1IA2R, and an A1RA2I; wherein said complex product includes an A12R and an A12I; wherein said first complex input includes a first component input collection comprising an A1R and an A1I; wherein said first complex log version number includes a Log A1R and a Log A1I.
- 37. The method of claim 36,
wherein the step creating said complex product is further comprised of the steps of:
subtracting said A1IA2I from said A1RA2R to create said A12R; and adding said A1IA2R to said A1RA2I to create said A12I; wherein the step receiving said first complex input is further comprised of the steps of:
calculating a logarithm of said A1R to create said Log A1R; and calculating a logarithm of said A1I to create said Log A1I. wherein the step exponentiating said complex log version product is further comprised of the steps of:
calculating an exponentiation of said Log A1RA2R to create said A1RA2R; calculating an exponentiation of said Log A1IA2I to create said A1IA2I; calculating an exponentiation of said Log A1IA2R to create said A1IA2R; and calculating an exponentiation of said Log A1RA2I to create said A1RA2I.
- 38. The apparatus of claim UU04,
wherein at least one of the steps calculating said exponentiation is further comprised of the step of:
means for calculating said exponentiation of said input as a member of a non-log-value collection; wherein said non-log-value collection is comprised of the members of said complex numeric component, and the members of said first component input collection, said A12R, and said A12I.
- 39. The method of claim 36, further comprising the step of:
providing at least one member of a log-value collection to create a provided log-value collection member; wherein said log-value collection is comprised of said Log A1R, said Log A1I, said Log A1RA2R and said Log A1IA2I, said Log A1IA2R, and said Log A1RA2I.
- 40. The method of claim 39,
wherein the step providing said log-value collection member is comprised of at least one member of the collection comprising the steps of:
providing said Log A1R to create said provided log-value collection member; providing said Log A1I to create said provided log-value collection member; providing said Log A1RA2R to create said provided log-value collection member; providing said Log A1IA2I to create said provided log-value collection member; providing said Log A1IA2R to create said provided log-value collection member; and providing said Log A1RA2I to create said provided log-value collection member.
- 41. The method of claim 36, further comprising at least one member of the collection comprising, for each of said complex numeric component collection members, the step of:
providing said complex numeric component collection member.
- 42. The method of claim 41, further comprising the steps of:
providing said complex numeric component collection member, for each of said complex numeric component collection members; providing said Log A1R; and providing said Log A1I.
- 43. A method for performing at least an FFT radix operation based upon said first complex input of claim 36, comprising the steps of:
receiving said Log A2R and said Log A2I; the steps of claim 36 using said Log A2R and said log A2I to define said second complex input:
receiving at least two current complex values; and, said method further comprising, for each of said current complex values, the steps of:
receiving a control for said current complex value; and creating a new complex value based upon said current complex value, said control, said complex input, and said complex product.
- 44. The method of claim 43, further comprising the step of:
providing at least one member of said log-value collection to create a provided log-value collection member; wherein said log-value collection is comprised of said Log A1R, said Log A1I, said Log A1RA2R, said Log A1IA2I, said Log A1IA2R, and said Log A1RA2I; wherein the step creating at least one of said new complex values is further comprised the step of:
creating at least a component of said new complex value based upon said current complex value, said control, said complex input, said complex product and said provided log-value collection member.
- 45. The method of claim 43, wherein said radix step includes at least an FFT Radix 2 operation.
- 46. The method of claim 43,
wherein said radix step includes at least an FFT Radix 4 operation; and wherein the step receiving said current complex values is further comprised of the step of:
receiving at least four of said current complex values.
- 47. The method of claim 43,
wherein said FFT radix operation includes at least an FFT Radix 8 operation; and said method is further comprised of the step of:
calculating a second complex product based upon at least one member of the collection comprising said first complex input and said complex product; wherein the step receiving said current complex values is further comprised of the step of:
receiving at least eight of said current complex values; wherein for each of said current complex values, the step updating said current complex value is further comprised of the step of:
creating said new complex value based upon said current complex value, said control, said complex input, and at least one member of the collection comprising said complex product and said second complex product.
- 48. The method of claim 47,
wherein the step calculating said second complex product is further comprised of at least one member of the collection comprising the steps of:
calculating said second complex product as a multiple of said complex product; and calculating said second complex product using the steps of claim 36 from said first complex input.
- 49. The method of claim 48,
wherein the step calculating said second complex product as said multiple is comprised of a member of the collection comprising the steps of:
means for calculating a fixed multiple of said complex product to create said second complex product; and a third use of the steps of claim 36 with said complex input as said complex product and with said second complex input approximating said fixed multiple.
- 50. The method of claim 36, further comprising a member of the collection comprising the steps of:
receiving said second complex input to create said Log A2R and said Log A2I; and generating said Log A2R and said Log A2I.
- 51. An calculator approximating a non-linear function applied to an input comprising a first order fraction and at least three successive higher order fractions, comprising:
a shifted-input adder receiving a base value, an offset collection comprising an offset value corresponding to each of said successive higher order fractions, and receiving said higher order fractions to create an approximate value of said non-linear function applied to said input; and an offset generator receiving said first order fraction to create said base value and to create each of said offset collection members; wherein said shifted input adder is further comprised, for each of said successive higher order fractions, of:
a shift-converter receiving said successive higher order fraction and said corresponding offset value to create a shift-result; wherein said shift input adder is further comprised of
an adder receiving said base value and, for each of said successive higher order fractions, said shift result, to create said approximate value; wherein each of said higher order fractions has a value spanning a set of at least four elements; and wherein said approximate value forms essentially a least squares approximation of said non-linear function applied to said input across an input range collection of at least sixty four members.
- 52. The apparatus of claim 51,
wherein a value collection is comprised of said base value and said offset value corresponding to said successive higher order fraction, for each of said successive higher order fractions; wherein said offset generator is comprised of a member of the collection including
a collection of tables, each member receiving said first order fraction to create each of said value collection member; a merged table receiving said first order fraction to create each of said value collection members; a combinatorial logic network, emulating a member of the collection said merged table and said table collection, by receiving said first order fraction to create each of said value collection members; and a second circuit including a memory receiving at least part of said first order fraction to generate a memory value and a second combinatorial logic network receiving at least one member of a collection comprising at least part of said first order fraction and said memory value, to create each of said value collection members.
- 53. The apparatus of claim 52,
wherein said offset generator further receives at least one of said successive higher order fractions to create a received higher order fractions; and wherein said offset generator is further comprised of at least one member of the collection including:
a first table driven shifted adder receiving said first order fraction and at least one of said received higher order fractions to create one of said value collection members; a second table driven shifted adder receiving said first order fraction and all of said received higher order fractions to create one of said value collection members; and a third table driven shifted adder receiving said first order fraction and two of said received higher order fractions to create one of said value collection members.
- 54. The apparatus of claim 51,
wherein said shifted-input adder further receiving a secondary offset collection comprising at least one member corresponding to at least a first and a second of said successive higher order fractions; and said offset generator further creating each of said secondary offset collection members; wherein said shifted input adder is further comprised, for each of said secondary offset collection members, of:
a secondary-shift-converter receiving said secondary offset collection member and each of said successive higher order fractions to create a secondary-shift-result; wherein said shift input adder is further comprised of
said adder further receiving, for each of said secondary offset collection members, said secondary-shift-result, to create said approximate value.
- 55. The apparatus of claim 51,
wherein said adder is comprised of a member of the collection comprising:
a local carry propagate adder tree receiving said base value and said shifted-results providing a redundant partial result to a global carry propagate adder to create said approximate value; and an global carry propagate adder tree receiving said base value and said shift-results to create said approximate value; wherein said local carry propagate adder tree is a combinatorial logic network consisting essentially of at least one local carry propagate adder in normal operation; and wherein each of said local carry propagate adders implements a local carry propagating addition scheme; wherein said global carry propagate adder tree is a combinatorial logic network consisting essentially of at least one global carry propagate adder in normal operation; and wherein each of said global carry propagate adders implements a global carry propagating addition scheme.
- 56. The apparatus of claim 51,
wherein said non-linear function is a member of a collection comprising a version of exponentiation, a version of logarithm, and a version of a member of a trigonometric function collection; wherein said trigonometric function collection is comprised of sine, cosine, and any linear combination of said sine and said cosine.
- 57. The apparatus of claim 56,
wherein said version of exponentiation includes at least one member of the collection comprising: a full-range version of exponentiation; a range-limited version exponentiation over a limited range; a binary-base version of exponentiation; a decimal-base version of exponentiation; and a natural-base version of exponentiation; wherein said version of logarithm includes at least one member of the collection comprising: a full-range version logarithm; a range-limited version logarithm over a limited range; a binary-base version of logarithm; a decimal-base version of logarithm; and a natural-base version of logarithm; wherein said version of said trigonometric function collection member includes a member of the collection comprising a full-range version of said trigonometric function collection member; a range-limited version of said trigonometric function collection member; a linear transformed range version of said trigonometric function collection member; and a linear transformed, range-limited version of said trigonometric function collection member.
- 58. The apparatus of claim 57,
wherein said input represents a member of a representation collection comprising an unsigned integer range of K bits, a signed integer range of K bits, a fixed point range of K bits, a mantissa of K bits, a leading bit mantissa of K bits, a floating point number of L bits with a mantissa of K bits, an extended number including a K bit fraction, and an extended number including floating point number of L bits with a mantissa of K bits; wherein K is at least 12; wherein L is greater than K; wherein an extended number includes at least one member of a special part collection including a negative-infinity indication and a negation indication.
- 59. The apparatus of claim 51,
wherein, for at least one of said successive higher order fractions, said successive higher order fraction has values exactly spanning said set of exactly four elements, and said shift-converter is further comprised of at least one member of the collection comprising:
said shift-converter performing a down-shift two bit multiplication of said successive higher order fraction and said corresponding offset value to create said shift-result; said shift-converter performing an offset down-shift two bit multiplication of said successive higher order fraction and said corresponding offset value to create said shift-result; and said shift-converter performing a multiplication of said successive higher order fraction and said corresponding offset value to create said shift-result; wherein said down shift two bit multiplication creates said shift result as a member of the collection consisting essentially of zero, said corresponding value shifted down one bit, said corresponding value, and said corresponding value plus said corresponding value shifted down one bit; wherein said offset down shift two bit multiplication creates said shift result as a member of the collection consisting essentially of a negation of said corresponding value shifted down one bit, zero, said corresponding value shifted down one bit, and said corresponding value.
- 60. An method approximating a non-linear function applied to an input comprising a first order fraction and at least three successive higher order fractions, comprising the steps of:
shifted-input adding of a base value, based upon an offset collection comprising an offset value corresponding to each of said successive higher order fractions, and based upon said higher order fractions to create an approximate value of said non-linear function applied to said input; and offset generating based upon said first order fraction to create said base value and to create each of said offset collection members; wherein the step shifted-input adding is further comprised, for each of said successive higher order fractions, of the steps of:
shift-converting said successive higher order fraction and said corresponding offset value to create a shift-result; wherein the step shift-input adding is further comprised of the step of:
adding said base value and, for each of said successive higher order fractions, said shift result, to create said approximate value; wherein each of said higher order fractions has a value spanning a set of at least four elements; and wherein said approximate value forms essentially a least squares approximation of said non-linear function applied to said input across an input range collection of at least sixty four members.
- 61. The method of claim 60,
wherein a value collection is comprised of said base value and said offset value corresponding to said successive higher order fraction, for each of said successive higher order fractions; wherein the step offset generating is comprised of a member of the collection including the steps of:
accessing a each member of a collection of at least two tables, at said first order fraction to create each of said value collection member; accessing a merged table at said first order fraction to create each of said value collection members; performing combinatorial logic emulating a member of the collection said merged table and said table collection, by receiving said first order fraction to create each of said value collection members; stimulating a memory with at least part of said first order fraction to create a memory value while performing a second combinatorial logic acting upon at least one member of a collection comprising at least part of said first order fraction and said memory value to create each of said value collection members.
- 62. The method of claim 61,
wherein the step offset generating is further comprised of the step of:
receiving at least one of said successive higher order fractions to create a received higher order fractions; and wherein the step offset generating is further comprised of at least one member of the collection including the steps of:
operating a first table driven shifted adder receiving said first order fraction and at least one of said received higher order fractions to create one of said value collection members; operating a second table driven shifted adder receiving said first order fraction and all of said received higher order fractions to create one of said value collection members; and operating a third table driven shifted adder receiving said first order fraction and two of said received higher order fractions to create one of said value collection members.
- 63. The method of claim 60,
wherein the step shifted-input adding is further comprised of the step:
receiving a secondary offset collection comprising at least one member corresponding to at least a first and a second of said successive higher order fractions; and wherein the step offset generating is further comprised of the steps of:
creating each of said secondary offset collection members; wherein the step shifted input adding is further comprised, for each of said secondary offset collection members, of the steps of:
operating a secondary-shift-converter receiving said secondary offset collection member and each of said successive higher order fractions to create a secondary-shift-result; wherein the step adding is further comprised of the step of: receiving, for each of said secondary offset collection members, said secondary-shift-result, to create said approximate value.
- 64. The method of claim 60,
wherein the step adding is comprised of a member of the collection comprising the steps of:
operating a local carry propagate adder tree receiving said shifted-results to provide a redundant partial result to a global carry propagate adder further receiving said base value to create said approximate value; and operating an global carry propagate adder tree receiving said shift-results and said base value to create said approximate value; wherein said local carry propagate adder tree is a combinatorial logic function consisting essentially of at least one local carry propagate adders in normal operation; and wherein said global carry propagate adder tree is a combinatorial logic function consisting essentially of at least one global carry propagate adders in normal operation; wherein each of said local carry propagate adders implements a local carry propagating addition scheme; and wherein each of said global carry propagate adders implements a global carry propagating addition scheme.
- 65. The method of claim 60,
wherein said non-linear function is a member of a collection comprising a version of exponentiation, a version of logarithm, and a version of a member of a trigonometric function collection; wherein said trigonometric function collection is comprised of sine, cosine, and any linear combination of said sine and said cosine.
- 66. The method of claim 65,
wherein said version of exponentiation includes at least one member of the collection comprising: a full-range version of exponentiation; a range-limited version exponentiation over a limited range; a binary-base version of exponentiation; a decimal-base version of exponentiation; and a natural-base version of exponentiation; wherein said version of logarithm includes at least one member of the collection comprising: a full-range version logarithm; a range-limited version logarithm over a limited range; a binary-base version of logarithm; a decimal-base version of logarithm; and a natural-base version of logarithm; wherein said version of said trigonometric function collection member includes a member of the collection comprising a full-range version of said trigonometric function collection member; a range-limited version of said trigonometric function collection member; a linear transformed range version of said trigonometric function collection member; and a linear transformed, range-limited version of said trigonometric function collection member.
- 67. The method of claim 66,
wherein said input represents a member of a representation collection comprising an unsigned integer range of K bits, a signed integer range of K bits, a fixed point range of K bits, a mantissa of K bits, a leading bit mantissa of K bits, a floating point number of L bits with a mantissa of K bits, an extended number including a K bit fraction, and an extended number including floating point number of L bits with a mantissa of K bits; wherein K is at least 12; wherein L is greater than K; wherein an extended number includes at least one member of a special part collection including a negative-infinity indication and a negation indication.
- 68. The method of claim 60,
wherein, for at least one of said successive higher order fractions, said successive higher order fraction has values exactly spanning said set of exactly four elements, and the step shift-converting is further comprised of at least one member of the collection comprising the steps of:
down-shift two bit multiplying said successive higher order fraction and said corresponding offset value to create said shift-result; offset down-shift two bit multiplying said successive higher order fraction and said corresponding offset value to create said shift-result; and multiplying said successive higher order fraction and said corresponding offset value to create said shift-result; wherein the step down shift two bit multiplying creates said shift result as a member of the collection consisting essentially of zero, said corresponding value shifted down one bit, said corresponding value, and said corresponding value plus said corresponding value shifted down one bit; wherein the step offset down shift two bit multiplying creates said shift result as a member of the collection consisting essentially of a negation of said corresponding value shifted down one bit, zero, said corresponding value shifted down one bit, and said corresponding value.
- 69. An apparatus approximating a non-linear function applied to an input comprising a first order fraction and at least three successive higher order fractions, comprising:
means for shifted-input adding of a base value, based upon an offset collection comprising an offset value corresponding to each of said successive higher order fractions, and based upon said higher order fractions to create an approximate value of said non-linear function applied to said input; and means for offset generating based upon said first order fraction to create said base value and to create each of said offset collection members; wherein the means for shifted-input adding is further comprised, for each of said successive higher order fractions, of:
means for shift-converting said successive higher order fraction and said corresponding offset value to create a shift-result; wherein the means for shift-input adding is further comprised of:
means for adding said base value and, for each of said successive higher order fractions, said shift result, to create said approximate value; wherein each of said higher order fractions has a value spanning a set of at least four elements; and wherein said approximate value forms essentially a least squares approximation of said non-linear function applied to said input across an input range collection of at least sixty four members.
- 70. The apparatus of claim 69,
wherein a value collection is comprised of said base value and said offset value corresponding to said successive higher order fraction, for each of said successive higher order fractions; wherein the means for offset generating is comprised of a member of the collection including:
means for accessing a collection of at least tables, at said first order fraction to create each of said value collection member; means for accessing a merged table at said first order fraction to create each of said value collection members; means for performing combinatorial logic emulating said merged table at said first order fraction to create each of said value collection members; and means for stimulating a memory with at least part of said first order fraction to create a memory value while performing a second combinatorial logic acting upon at least one member of a collection comprising at least part of said first order fraction and said memory value to create each of said value collection members.
- 71. The apparatus of claim 70,
wherein the means for offset generating is further comprised of:
means for receiving at least one of said successive higher order fractions to create a received higher order fractions; and wherein the means for offset generating is further comprised of at least one member of the collection including:
means for operating a first table driven shifted adder receiving said first order fraction and at least one of said received higher order fractions to create one of said value collection members; means for operating a second table driven shifted adder receiving said first order fraction and all of said received higher order fractions to create one of said value collection members; and means for operating a third table driven shifted adder receiving said first order fraction and two of said received higher order fractions to create one of said value collection members.
- 72. The apparatus of claim 69,
wherein the means for shifted-input adding is further comprised of:
means for receiving a secondary offset collection comprising at least one member corresponding to at least a first and a second of said successive higher order fractions; and wherein the means for offset generating is further comprised of:
means for creating each of said secondary offset collection members; wherein the means for shifted input adding is further comprised, for each of said secondary offset collection members, of:
means for operating a secondary-shift-converter receiving said secondary offset collection member and each of said successive higher order fractions to create a secondary-shift-result; wherein the means for adding is further comprised of: means for receiving, for each of said secondary offset collection members, said secondary-shift-result, to create said approximate value.
- 73. The apparatus of claim 69,
wherein the means for adding is comprised of a member of the collection comprising:
means for operating a local carry propagate adder tree receiving said shifted-results to provide a redundant partial result to a global carry propagate adder further receiving said base value to create said approximate value; and means for operating an global carry propagate adder tree receiving said shift-results and said base value to create said approximate value; wherein said local carry propagate adder tree is a combinatorial logic function consisting essentially of at least one local carry propagate adders in normal operation; and wherein said global carry propagate adder tree is a combinatorial logic function consisting essentially of at least one global carry propagate adders in normal operation; wherein each of said local carry propagate adders implements a local carry propagating addition scheme; and wherein each of said global carry propagate adders implements a global carry propagating addition scheme.
- 74. The apparatus of claim 69,
wherein said non-linear function is a member of a collection comprising a version of exponentiation, a version of logarithm, and a version of a member of a trigonometric function collection; wherein said trigonometric function collection is comprised of sine, cosine, and any linear combination of said sine and said cosine.
- 75. The apparatus of claim 74,
wherein said version of exponentiation includes at least one member of the collection comprising: a full-range version of exponentiation; a range-limited version exponentiation over a limited range; a binary-base version of exponentiation; a decimal-base version of exponentiation; and a natural-base version of exponentiation; wherein said version of logarithm includes at least one member of the collection comprising: a full-range version logarithm; a range-limited version logarithm over a limited range; a binary-base version of logarithm; a decimal-base version of logarithm; and a natural-base version of logarithm; wherein said version of said trigonometric function collection member includes a member of the collection comprising a full-range version of said trigonometric function collection member; a range-limited version of said trigonometric function collection member; a linear transformed range version of said trigonometric function collection member; and a linear transformed, range-limited version of said trigonometric function collection member.
- 76. The apparatus of claim 75,
wherein said input represents a member of a representation collection comprising an unsigned integer range of K bits, a signed integer range of K bits, a fixed point range of K bits, a mantissa of K bits, a leading bit mantissa of K bits, a floating point number of L bits with a mantissa of K bits, an extended number including a K bit fraction, and an extended number including floating point number of L bits with a mantissa of K bits; wherein K is at least 12; wherein L is greater than K; wherein an extended number includes at least one member of a special part collection including a negative-infinity indication and a negation indication.
- 77. The apparatus of claim 69,
wherein, for at least one of said successive higher order fractions, said successive higher order fraction has values exactly spanning said set of exactly four elements, and the means for shift-converting is further comprised of at least one member of the collection comprising:
means for down-shift two bit multiplying said successive higher order fraction and said corresponding offset value to create said shift-result; means for offset down-shift two bit multiplying said successive higher order fraction and said corresponding offset value to create said shift-result; and means for multiplying said successive higher order fraction and said corresponding offset value to create said shift-result; wherein the means for down shift two bit multiplying creates said shift result as a member of the collection consisting essentially of zero, said corresponding value shifted down one bit, said corresponding value, and said corresponding value plus said corresponding value shifted down one bit; wherein the means for offset down shift two bit multiplying creates said shift result as a member of the collection consisting essentially of a negation of said corresponding value shifted down one bit, zero, said corresponding value shifted down one bit, and said corresponding value.
CROSS REFERENCES TO RELATED APPLICATIONS
[0001] This application is related to the following provisional applications filed with the United States Patent and Trademark Office:
[0002] Serial No. 60/204,113, entitled “Method and apparatus of a digital arithmetic and memory circuit with coupled control system and arrays thereof”, filed May 15, 2000 by Jennings, docket number ARITH001PR;
[0003] Serial No. 60/215,894, entitled “Method and apparatus of a digital arithmetic and memory circuit with coupled control system and arrays thereof”, filed Jul. 5, 2000 by Jennings, docket number ARITH002PR;
[0004] Serial No. 60/217,353, entitled “Method and apparatus of a digital arithmetic and memory circuit with coupled control system and arrays thereof”, filed Jul. 11, 2000 by Jennings, docket number ARITH003PR;
[0005] Serial No. 60/231,873, entitled “Method and apparatus of a digital arithmetic and memory circuit with coupled control system and arrays thereof”, filed Sep. 12, 2000 by Jennings, docket number ARITH004PR;
[0006] Serial No. 60/261,066, entitled “Method and apparatus of a DSP resource circuit”, filed Jan. 11, 2001 by Jennings, docket number ARITH005PR; and
[0007] Serial No. 60/282,093, entitled “Method and apparatus of a DSP resource circuit”, filed Apr. 6, 2001 by Jennings, docket number ARITH006PR.
[0008] This application claims priority from the following provisional applications filed with the United States Patent and Trademark Office:
[0009] Serial No. 60/314,411, entitled “Method and apparatus for high speed calculation of non-linear functions”, filed Aug. 22, 2001 by Jennings, docket number ARITH007PR;
[0010] Serial No. 60/325,093, entitled “A 64 point FFT Engine”, filed Sep. 25, 2001 by Jennings, docket number ARITH008PR;
[0011] Serial No. 60/365,416, entitled “Methods and apparatus compiling non-linear functions, matrices and instruction memories and the apparatus resulting therefrom”, filed Mar. 18, 2002 by Jennings and Landers, docket number ARITH010PR; and
[0012] Serial No. 60/402,346, entitled “Method and apparatus providing time division multiplexed arithmetic resources for digital signal processing and emulation of instruction memories”, filed Aug. 9, 2002 by Jennings and Landers, docket number ARITH011PR. This application claims priority as a continuation in part from the following application filed with the United States Patent and Trademark Office:
[0013] Serial No. PCT/US 01/15,541, entitled “Method and apparatus of DSP resource allocation and use”, filed May 14, 2001 by Jennings, docket number ARITH001; and
[0014] Serial No. 10/155,512, entitled “Method and apparatus emulating read only memories with combinatorial logic networks, methods and apparatus generating read only memory emulator combinatorial logic networks”, filed May 23, 2002 by Landers and Jennings.
Provisional Applications (4)
|
Number |
Date |
Country |
|
60314411 |
Aug 2001 |
US |
|
60325093 |
Sep 2001 |
US |
|
60365416 |
Mar 2002 |
US |
|
60402346 |
Aug 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10155512 |
May 2002 |
US |
Child |
10226735 |
Aug 2002 |
US |