Method to perform convolutions between arbitrary vectors using clusters of weakly coupled oscillators
09998130 · 2018-06-12
Assignee
- Hrl Laboratories, Llc (Malibu, CA)
- UNIVERSITY OF PITTSBURG—OF THE COMMONWEALTH SYSTEM OF HIGHER EDUCATION (Pittsburgh, PA, US)
Inventors
- Praveen K. Pilly (West Hills, CA)
- Jose Cruz-Albrecht (Oak Park, CA, US)
- Narayan Srinivasa (Hillsboro, OR, US)
- Steven P. Levitan (Pittsburgh, PA, US)
- Donald M. Chiarulli (Pittsburgh, PA, US)
Cpc classification
H03L7/00
ELECTRICITY
H04L9/12
ELECTRICITY
H04N19/156
ELECTRICITY
G09G3/20
PHYSICS
H04L9/0838
ELECTRICITY
G09G5/001
PHYSICS
H03K4/50
ELECTRICITY
H03L7/26
ELECTRICITY
International classification
H03K3/02
ELECTRICITY
G09G5/00
PHYSICS
G09G3/20
PHYSICS
H04L9/08
ELECTRICITY
H04L9/12
ELECTRICITY
H03K4/50
ELECTRICITY
H03L7/26
ELECTRICITY
H04N19/156
ELECTRICITY
Abstract
A method to perform convolutions between arbitrary vectors includes estimating a first degree of match for a difference between a first vector having a plurality of first elements and a second vector having a plurality of second elements using a first cluster of coupled oscillators, estimating a second degree of match for the first vector using a second cluster of coupled oscillators, estimating a third degree of match for the second vector using a third cluster of coupled oscillators, deriving a first squared L.sup.2 norm from the first degree of match, deriving a second squared L.sup.2 norm from the second degree of match, deriving a third squared L.sup.2 norm from the third degree of match, adding the second squared L.sup.2 norm and the third squared L.sup.2 norm, and subtracting the first squared L.sup.2 norm to form a sum, and dividing the sum by two.
Claims
1. A method to perform convolutions between arbitrary vectors comprising: computing a first degree of match for a difference between a first vector having a plurality of first elements and a second vector having a plurality of second elements using a first cluster of weakly coupled oscillators; computing a second degree of match for the first vector using a second cluster of weakly coupled oscillators; computing a third degree of match for the second vector using a third cluster of weakly coupled oscillators; estimating a first squared L.sup.2 norm from the first degree of match; estimating a second squared L.sup.2 norm from the second degree of match; estimating a third squared L.sup.2 norm from the third degree of match; and adding the second squared L.sup.2 norm and the third squared L.sup.2 norm, and subtracting the first squared L.sup.2 norm to form a sum.
2. The method of claim 1 wherein: estimating the first squared L.sup.2 norm from the first degree of match comprises using a first precomputed lookup table or a first precomputed piecewise linear function for deriving the first squared L.sup.2 norm from the first degree of match; estimating the second squared L.sup.2 norm from the second degree of match comprises using a second precomputed lookup table or a second precomputed piecewise linear function for deriving the second squared L.sup.2 norm from the second degree of match; and estimating the third squared L.sup.2 norm from the third degree of match comprises using a third precomputed lookup table or a third precomputed piecewise linear function for deriving the third squared L.sup.2 norm from the third degree of match.
3. The method of claim 1 wherein: estimating the first squared L.sup.2 norm from the first degree of match comprises: characterizing the first degree of match for different first squared L.sup.2 norms using the first cluster of weakly coupled oscillators to estimate a first degree of match for a plurality of samples of elements of the first vector and for a plurality of samples of elements of the second vector to form a correspondence between a respective first degree of match and a respective first squared L.sup.2 norm, wherein each element of the first vector and each element of the second vector ranges between 1 and +1; estimating the second squared L.sup.2 norm from the second degree of match comprises: characterizing the second degree of match for different second squared L.sup.2 norms using the second cluster of weakly coupled oscillators to estimate a second degree of match for a plurality of samples of elements of the first vector to form a correspondence between a respective second degree of match and a respective second squared L.sup.2 norm, wherein each element of the first vector ranges between 1 and +1; and deriving the third squared L.sup.2 norm from the third degree of match comprises: characterizing the third degree of match for different third squared L.sup.2 norms using the third cluster of weakly coupled oscillators to estimate a third degree of match for a plurality of samples of elements of the second vector to form a correspondence between a respective third degree of match and a respective third squared L.sup.2 norm, wherein each element of the second vector ranges between 1 and +1.
4. The method of claim 3: wherein estimating the first degree of match for the difference between the first vector having a plurality of first elements and the second vector having a plurality of second elements comprises estimating the first degree of match for a difference between the first vector and the second vector, wherein each element of the first vector and each element of the second vector ranges between 1 and +1; wherein estimating the second degree of match for the first vector comprises estimating the second degree of match wherein each element of the first vector ranges between 1 and +1; and wherein estimating the third degree of match for the second vector comprises estimating the third degree of match wherein each element of the second vector ranges between 1 and +1; and further comprising calculating a first L.sup.1 norm of the first vector; calculating a second L.sup.1 norm of the second vector; adding the second squared L.sup.2 norm and the third squared L.sup.2 norm, and subtracting the first squared L.sup.2 norm, a first scaling factor times the first L.sup.1 norm, a second scaling factor times the second L.sup.2 norm, and a third factor to form a sum; and dividing the sum by two.
5. The method of claim 1: wherein the second cluster of weakly coupled oscillators is the first cluster of weakly coupled oscillators; and wherein the third cluster of weakly coupled oscillators is the first cluster of weakly coupled oscillators.
6. The method of claim 1 further comprising: estimating a plurality of first degree of matches for a plurality of first vectors and a plurality of second vectors over a range of values of the first elements of the first vectors and over a range of values of the second elements of the second vectors to characterize a relationship between a respective first degree of match and a respective first squared L.sup.2 norm; estimating a plurality of second degree of matches for a plurality of first vectors over the range of values of the first elements of the first vectors to characterize a relationship between a respective second degree of match and a respective second squared L.sup.2 norm; and estimating a plurality of third degree of matches for a plurality of second vectors over the range of values of the second elements of the second vectors to characterize a relationship between a respective third degree of match and a respective third squared L.sup.2 norm.
7. The method of claim 1 wherein: estimating the second degree of match for the first vector using the second cluster of weakly coupled oscillators comprises estimating a second degree of match for a difference between the first vector and a third vector having a plurality of zero elements; and estimating the third degree of match for the second vector using the third weakly cluster of coupled oscillators comprises estimating the third degree of match for a difference between the second vector and the third vector having the plurality of zero elements.
8. The method of claim 1 wherein: the first cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator; the second cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator; and the third cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator.
9. The method of claim 1 wherein: the first cluster of weakly coupled oscillators comprises: a plurality of difference circuits, each respective difference circuit coupled to a respective element of the first vector and to a respective element of the second vector and having a respective difference output; a plurality of oscillators, each respective oscillator having a respective input coupled to a respective difference output, and having a respective oscillator output; a summer for adding the respective oscillator outputs; and an integrator for integrating over a plurality of cycles of the oscillators and having an integrator output for providing an estimate of the first degree of match.
10. The method of claim 9 wherein: each difference circuit comprises a transconductance amplifier; and each oscillator comprises a time encoded oscillator comprising: a summer coupled to the difference circuit; an integrator coupled to the summer; a hysteresis quantizer coupled to the integrator; and a 1-bit digital to analog converter coupled to the hysteresis quantizer having an output coupled to the summer.
11. The method of claim 9 wherein: each difference circuit comprises an analog voltage difference circuit; and each oscillator comprises: a voltage controlled oscillator or a voltage controlled relaxation oscillator.
12. The method of claim 1 wherein: each of the second and third clusters of weakly coupled oscillators comprises: a plurality of difference circuits, each respective difference circuits having a respective output; a plurality of oscillators, each respective oscillator coupled to a respective output and having a respective oscillator output; a summer for adding the respective oscillator outputs; and an integrator for integrating over a plurality of cycles of the oscillators and having an integrator output for providing an estimate of a degree of match.
13. A method to perform convolutions between arbitrary vectors {right arrow over (X)} and {right arrow over (T)} comprising: calculating the formula
{right arrow over (X)}.Math.{right arrow over (T)}={{right arrow over (X)}{right arrow over (0)}.sup.2+{right arrow over (T)}{right arrow over (0)}.sup.2{right arrow over (X)}{right arrow over (T)}.sup.22.sub.X.sub.T{right arrow over (X)}.sub.12.sub.T.sub.X{right arrow over (T)}.sub.12.sub.X.sub.T}; wherein {right arrow over (X)}{right arrow over (T)}.sup.2 is derived from a first degree of match for a difference between the vector {right arrow over (X)} and the vector {right arrow over (T)} using a first cluster of weakly coupled oscillators; wherein {right arrow over (X)}{right arrow over (0)}.sup.2 is derived from a second degree of match for a difference between the vector {right arrow over (X)} and a zero vector using a second cluster of weakly coupled oscillators; wherein {right arrow over (T)}{right arrow over (0)}.sup.2 is derived from a third degree of match for a difference between the vector {right arrow over (T)} and a zero vector using a third cluster of weakly coupled oscillators; wherein each element of the vector {right arrow over (X)} and the vector {right arrow over (T)} is linearly scaled to range between 1 and +1 to form a scaled vector {right arrow over (X)} and to form a scaled vector {right arrow over (T)}; wherein {right arrow over (X)}.sub.1 is the L.sup.1 norm of vector {right arrow over (X)}; and wherein {right arrow over (T)}.sub.1 is the L.sup.1 norm of vector {right arrow over (T)}.
14. The method of claim 13 further comprising: characterizing the first degree of match for different {right arrow over (X)}{right arrow over (T)}.sup.2 using the first cluster of weakly coupled oscillators; characterizing the second degree of match for different {right arrow over (X)}{right arrow over (0)}.sup.2 using the second cluster of weakly coupled oscillators; and characterizing the third degree of match for different {right arrow over (T)}{right arrow over (0)}.sup.2 using the third cluster of weakly coupled oscillators.
15. The method of claim 13: wherein the second cluster of weakly coupled oscillators is the first cluster of weakly coupled oscillators; and wherein the third cluster of weakly coupled oscillators is the first cluster of coupled oscillators.
16. The method of claim 13 wherein: the first cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator; the second cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator; and the third cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator.
17. The method of claim 13 wherein: the first cluster of weakly coupled oscillators comprises: a plurality of difference circuits, each respective difference circuit coupled to a respective element of the scaled vector {right arrow over (X)} and to a respective element of the scaled vector {right arrow over (T)} and having a respective difference output; a plurality of oscillators, each respective oscillator having a respective input coupled to a respective difference output, and having a respective oscillator output; a summer for adding the respective oscillator outputs; and an integrator for integrating over a plurality of cycles of the oscillators and having an integrator output for providing an estimate of the first degree of match.
18. The method of claim 17 wherein: each difference circuit comprises a transconductance amplifier; and each oscillator comprises a time encoded oscillator comprising: a summer coupled to the difference circuit; an integrator coupled to the summer; a hysteresis quantizer coupled to the integrator; and a 1-bit digital to analog converter coupled to the hysteresis quantizer having an output coupled to the summer.
19. The method of claim 17 wherein: each difference circuit comprises an analog voltage difference circuit; and each oscillator comprises: a voltage controlled oscillator or a voltage controlled relaxation oscillator.
20. The method of claim 13 wherein: each of the second and third clusters of weakly coupled oscillators comprises: a plurality of difference circuits, each respective difference circuits having a respective output; a plurality of oscillators, each respective oscillator coupled to a respective output and having a respective oscillator output; a summer for adding the respective oscillator outputs; and an integrator for integrating over a plurality of cycles of the oscillators and having an integrator output for providing an estimate of a degree of match.
21. A device to perform convolutions between arbitrary vectors {right arrow over (X)} and {right arrow over (T)} comprising: a processor for calculating the formula
{right arrow over (X)}.Math.{right arrow over (T)}={{right arrow over (X)}{right arrow over (0)}.sup.2+{right arrow over (T)}{right arrow over (0)}.sup.2{right arrow over (X)}{right arrow over (T)}.sup.22.sub.X.sub.T{right arrow over (X)}.sub.12.sub.T.sub.X{right arrow over (T)}.sub.12.sub.X.sub.T}; a first cluster of weakly coupled oscillators for determining a first degree of match for a difference between the vector {right arrow over (X)} and the vector {right arrow over (T)} to derive {right arrow over (X)}{right arrow over (T)}.sup.2; a second cluster of weakly coupled oscillators for determining a second degree of match for a difference between the vector {right arrow over (X)} and a zero vector to derive {right arrow over (X)}{right arrow over (0)}.sup.2; a third cluster of weakly coupled oscillators for determining a third degree of match for a difference between the vector {right arrow over (T)} and a zero vector to derive {right arrow over (T)}{right arrow over (0)}.sup.2; wherein each element of the vector {right arrow over (X)} and the vector {right arrow over (T)} is scaled linearly by .sub.X .sub.X and .sub.T .sub.T respectively to range between 1 and +1 to form a scaled vector {right arrow over (X)} and to form a scaled vector {right arrow over (T)}; wherein {right arrow over (X)}.sub.1 is the L.sup.1 norm of vector {right arrow over (X)}; and wherein {right arrow over (T)}.sub.1 is the L.sup.1 norm of vector {right arrow over (T)}.
22. The device of claim 21 further comprising: a first memory for storing a characterization of the first degree of match for different {right arrow over (X)}{right arrow over (T)}.sup.2 using the first cluster of weakly coupled oscillators; a second memory for storing a characterization of the second degree of match for different {right arrow over (X)}{right arrow over (0)}.sup.2 using the second cluster of weakly coupled oscillators; and a third memory for storing a characterization of the third degree of match for different {right arrow over (T)}{right arrow over (0)}.sup.2 using the third cluster of weakly coupled oscillators.
23. The device of claim 21: wherein the second cluster of weakly coupled oscillators is the first cluster of weakly coupled oscillators; and wherein the third cluster of weakly coupled oscillators is the first cluster of weakly coupled oscillators.
24. The device of claim 21 wherein: the first cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator; the second cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator; and the third cluster of weakly coupled oscillators comprises a resonant body oscillator or a spin torque oscillator.
25. The device of claim 21 wherein: each of the second and third clusters of weakly coupled oscillators comprises: a plurality of difference circuits, each respective difference circuit having a respective difference output; a plurality of oscillators, each respective oscillator having a respective input coupled to a respective difference output, and having a respective oscillator output; a summer for adding the respective oscillator outputs; and an integrator for integrating over a plurality of cycles of the oscillators and having an integrator output for providing a first, second or third, respectively, degree of match.
26. The device of claim 25 wherein: each difference circuit comprises a transconductance amplifier; and each oscillator comprises a time encoded oscillator comprising: a summer coupled to the difference circuit; an integrator coupled to the summer; a hysteresis quantizer coupled to the integrator; and a 1-bit digital to analog converter coupled to the hysteresis quantizer having an output coupled to the summer.
27. The device of claim 25 wherein: each difference circuit comprises an analog voltage difference circuit; and each oscillator comprises: a voltage controlled oscillator or a voltage controlled relaxation oscillator.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10) In the following description, numerous specific details are set forth to clearly describe various specific embodiments disclosed herein. One skilled in the art, however, will understand that the presently claimed invention may be practiced without all of the specific details discussed below. In other instances, well known features have not been described so as not to obscure the invention.
(11) The present disclosure describes an analog method to compute inner products, and thereby convolutions, using a cluster of weakly coupled oscillators. The oscillators may be nanoscale oscillator devices, such as resonant body oscillators (RBOs) and spin torque oscillators (STDs). The method of the present disclosure would require 10.sup.4 less power consumption than that needed for conventional Boolean arithmetic-based convolution. Also, the processing speed of the method of the present disclosure would be 10.sup.3 times faster than computing convolutions using conventional Boolean arithmetic. Therefore, a large improvement with respect to size, weight, area, and power (SWAP) is possible.
(12) The present disclosure is a method to approximate the computation of a dot product, for which closed-form optimal weight update equations exist for training deep learning networks. For instance, in convolution nets, as described in References [5] and [6], which are incorporated herein by reference, the activity of each unit in the feature matching layers is governed by a sigmoidal signal function that operates on the dot product between its fan-in weight template vector and the inputs in its immediate receptive field. The present disclosure relies on approximating an L.sup.2 norm as a function of an DoM with piecewise linear functions, where the number of segments in the piecewise linear function is a variable that improves performance monotonically, as further described below.
(13) Given two high-dimensional vectors {right arrow over (X)} and {right arrow over (T)} with arbitrary ranges of values, the method of the present disclosure can provide a fast computation of the inner product of the two vectors {right arrow over (X)}.Math.{right arrow over (T)} based on the following Equation (1)
{right arrow over (X)}{right arrow over (T)}.sup.2={right arrow over (X)}.sup.2+{right arrow over (T)}.sup.22({right arrow over (X)}.Math.{right arrow over (T)})(1), which can be rearranged as Equation (2),
{right arrow over (X)}.Math.{right arrow over (T)}={{right arrow over (X)}.sup.2+{right arrow over (T)}.sup.2{right arrow over (X)}{right arrow over (T)}.sup.2},(2) which is equivalent to Equation (3)
{right arrow over (X)}.Math.{right arrow over (T)}={{right arrow over (X)}{right arrow over (0)}.sup.2+{right arrow over (T)}{right arrow over (0)}.sup.2{right arrow over (X)}{right arrow over (T)}.sup.2}(3).
(14) The method of the present disclosure extracts estimates for the required squared L.sup.2 norms, namely the squared L.sup.2 norms {right arrow over (X)}{right arrow over (0)}.sup.2, {right arrow over (T)}{right arrow over (0)}.sup.2, and {right arrow over (X)}{right arrow over (T)}.sup.2 from the DoM outputs of the oscillator clusters for the corresponding three pairs of vectors, namely, ({right arrow over (X)},{right arrow over (0)}), (T,{right arrow over (0)}), and ({right arrow over (X)},{right arrow over (T)}), respectively. As a person skilled in the art would understand that a given value of an L.sup.2 norm, for example {right arrow over (X)}{right arrow over (T)}.sup.2, may be the result of different pairs of {right arrow over (X)} and {right arrow over (T)}, which is exacerbated for high dimensional vectors.
(15) The method of the present disclosure is applicable to any oscillator cluster technology that computes DoM between two vectors using the physics of spontaneous synchronization.
(16) The method, as shown in
(17) In the offline procedure, a cluster of weakly coupled oscillators, such as the cluster of weakly coupled oscillators 20, shown in
(18) In the method, in order to characterize the DoM outputs 22 for different squared L.sup.2 norms, it is assumed, without loss of generality as further described below, that the minimum and maximum value for each element in each vector {right arrow over (X)} and {right arrow over (T)}, ranges between 1 and +1. This ensures that the each squared L.sup.2 norm ranges from 0 to 4N, where N is the dimensionality of the vectors. For the purpose of characterizing the DoM outputs 22 for the squared L.sup.2 norms {right arrow over (X)}{right arrow over (0)}.sup.2, {right arrow over (T)}{right arrow over (0)}.sup.2, and {right arrow over (X)}{right arrow over (T)}.sup.2, this range of 1 and +1 for each vector {right arrow over (X)} and {right arrow over (T)} preferably is sampled uniformly across the range.
(19) Once the DoM outputs 22 across the range of 1 and +1 for each vector {right arrow over (X)} and {right arrow over (T)}, a graph 24, as shown in
(20) By performing the above steps in an offline procedure, the graph 24 with piecewise linear segments 25 may be used to lookup, or immediately estimate, a squared L.sup.2 norm for a DoM generated by the cluster of weakly coupled oscillators.
(21) If vectors {right arrow over (X)} and {right arrow over (T)} have arbitrary valued-elements, rather than elements ranging from 1 to +1, the vectors may be linearly scaled and shifted to the range of 1 to 1. This can be trivially achieved based on the minimum and maximum values across the elements for each vector. The linear transformation functions are as follows:
{right arrow over (X)}=.sub.X{right arrow over (X)}+.sub.X(4) and
{right arrow over (T)}=.sub.T{right arrow over (T)}+.sub.T(5).
(22) Combining Equations (3)-(5), the following Equation (6) can be derived:
{right arrow over (X)}.Math.{right arrow over (T)}={{right arrow over (X)}{right arrow over (0)}.sup.2+{right arrow over (T)}{right arrow over (0)}.sup.2{right arrow over (X)}{right arrow over (T)}.sup.22.sub.X.sub.T{right arrow over (X)}.sub.12.sub.T.sub.X{right arrow over (T)}.sub.12.sub.X.sub.T} (6).
(23) Equation (6), above, shows that the dot product 26 can be estimated using the concept of coupled oscillators wherein the first three terms of Equation (6) are three squared L.sup.2 norms. These squared L.sup.2 norms are derived by using the cluster of weakly coupled oscillators 20 to compute a DoM 22 for each of the first three terms in Equation (6), as shown in
(24) Equation (6) also requires computing the L.sup.1 norms of the two vectors (i.e., {right arrow over (X)}.sub.1 and {right arrow over (T)}.sub.1), which are relatively less expensive computationally compared to multiplication, because the L.sup.1 norm of a vector, as discussed above, is merely the sum of the absolute values of the elements in the vector.
(25) The computations of Equation (6) may be performed by any processor, computer, or microprocessor having storage and computing elements whether digital or analog.
(26) The generation of the DoM outputs 22 for the different squared L.sup.2 norms {right arrow over (X)}{right arrow over (0)}.sup.2, {right arrow over (T)}{right arrow over (0)}.sup.2, and {right arrow over (X)}{right arrow over (T)}.sup.2 may be implemented in two ways, serially and in parallel. In the first implementation the same cluster of weakly coupled oscillators 24 are used to perform the characterization of the required squared L.sup.2 norms in sequence. In the second implementation three clusters of weakly coupled oscillators are used in parallel for the characterization of the three squared L.sup.2 norms.
(27)
(28) As shown in
(29) The integrators 42 may be implemented with capacitors, and the hysteresis quantizers 44 and the 1-bit DACs 46 may be implemented with CMOS transistors. The output 48 of the time encoder is an asynchronous pulse-type signal that has only two possible values: high and low. This type of oscillator, with only two binary amplitude values, can be implemented efficiently in CMOS technology with low voltage swings.
(30) The output 47 of each time encoder is an input to an averager circuit 50, which includes transconductance amplifiers 51 each connected to resistor 52. The resistor 52 may be connected to a reference voltage V.sub.REF1. The transconductance amplifiers 51 convert the voltage outputs 47 of the time encoder oscillators 32 into currents. The currents of all the transconductance amplifiers 51 may be summed together by wire merging and are connected to resistor 52 to form the oscillatory signal y 54.
(31) Then a match circuit is used to convert the oscillatory signal y 54 into the output signal d 34 that has a higher voltage when {right arrow over (X)} is close to {right arrow over (T)} and a lower voltage when {right arrow over (X)} is not close to {right arrow over (T)}. The match circuit includes a buffer 60, a diode 62, a capacitor 64, a current source circuit 66, and an integrator 68. The buffer 60 is used to produce a voltage signal y.sub.b 70 with the same voltage value as the signal y 54 produced by the averager circuit 50. The buffer 60 is used to ensure that the current flowing through the diode 62 does not have any effect on the output voltage signal y 54 of the averager circuit 50. The diode 62, capacitor 64, and current source circuit 66 are used to rectify the signal y.sub.b 70 The result of the rectification is a voltage signal y.sub.c 72 that follows the peak values of the oscillatory signal y.sub.b 70. The integrator 68 is used to integrate y.sub.c 72. The integrator 68 can be reset by a reset signal 74. The output of the integrator is voltage signal d 34. The voltage of this signal d 34, measured at a certain fixed time period after the reset signal 74 is enabled, represents the degree of match (DoM) between the input {right arrow over (X)} and the target {right arrow over (T)} vectors. The time period to measure the signal d 34 can be in the order of fifty (50) times larger than a typical average oscillation cycle time of the oscillators 32.
(32) For the circuit of
(33) In some embodiments the feedback signal 54 is between 1% and 36% of the arithmetic average of all oscillator outputs 47. Another range for the value of the feedback signal is 0.04 to 0.50 of the arithmetic average of the outputs 47 of the oscillators 32. A typical feedback signal may be 0.36*(Output_of_Oscillator_1+Output_of_Oscillator_2+ . . . +Output_of_Oscillator_M)/M. The number of oscillators M is arbitrary. In
(34) The circuit of
(35) The coupled oscillator cluster of
(36)
(37)
(38) In another embodiment, a simpler coupled oscillator 100, as shown in
(39) The input Vin 102 to each voltage-controlled CMOS oscillator 100 is from analog voltage difference circuit 101 and is an analog voltage difference (X.sub.iT.sub.i) of elements X.sub.i and T.sub.i of two vectors {right arrow over (X)} and {right arrow over (T)}. The outputs 104 of the voltage-controlled CMOS oscillators 100 may be combined or summed by direct electrical connection at connection 106, and then buffered by buffer 108 and integrated by integrator 110 to form output 120.
(40) When {right arrow over (X)} and {right arrow over (T)} match, the voltage-controlled CMOS oscillators 100 are more synchronized. When they do not match, the voltage-controlled CMOS oscillators 100 are less synchronized. The output 120 depends on the amount of synchronization and the degree of match (DoM) between the input vector {right arrow over (X)} and the target vector {right arrow over (T)}. The integrated waveform at the output 120, and the sampled voltage of the output 120 has the characteristic of the squared L.sup.2 norm, which may be expressed as the L.sub.2.sup.2 norm, as shown in
(41) The DoM circuit shown in
(42)
(43) Therefore, vector convolution may be implemented with oscillators by making a simple algebraic transformation of Equation (7). By expanding and rearranging this equation, an expression for the convolution of A and B in terms of three oscillator-based DOM circuits can be derived, as shown in Equation 8.
(44)
(45) Equation (8) shows that the dot product or convolution of two vectors A and B can be computed by using three oscillator clusters, each computing a DoM. One oscillator cluster computes the DoM between vector A and B, DOM(A,B), the second oscillator cluster computes the DOM between the vector A and a zero vector, DOM(A,0), and the third oscillator cluster computes the DOM between the vector B and a zero vector, DOM(B,0). Then a simple subtractor and scale operator can be used to produce the dot product of vector A and vector B, as shown in Equation (8). The quality of the derived dot product, or a measure of how close it matches the mathematical ideal, is a function of the oscillators, the coupling, the DOM circuitry, and how close the sampled response is to the L.sub.2.sup.2 norm.
(46) For the circuit described above with reference to
(47) The present disclosure has described methods and apparatus to compute inner products, and thereby convolutions, between arbitrary vectors. Any oscillator cluster technology that computes a degree-of-match between two vectors using spontaneous synchronization dynamics may be used, including those described in
(48) Having now described the invention in accordance with the requirements of the patent statutes, those skilled in this art will understand how to make changes and modifications to the present invention to meet their specific requirements or conditions. Such changes and modifications may be made without departing from the scope and spirit of the invention as disclosed herein.
(49) The foregoing Detailed Description of exemplary and preferred embodiments is presented for purposes of illustration and disclosure in accordance with the requirements of the law. It is not intended to be exhaustive nor to limit the invention to the precise form(s) described, but only to enable others skilled in the art to understand how the invention may be suited for a particular use or implementation. The possibility of modifications and variations will be apparent to practitioners skilled in the art. No limitation is intended by the description of exemplary embodiments which may have included tolerances, feature dimensions, specific operating conditions, engineering specifications, or the like, and which may vary between implementations or with changes to the state of the art, and no limitation should be implied therefrom. Applicant has made this disclosure with respect to the current state of the art, but also contemplates advancements and that adaptations in the future may take into consideration of those advancements, namely in accordance with the then current state of the art. It is intended that the scope of the invention be defined by the Claims as written and equivalents as applicable. Reference to a claim element in the singular is not intended to mean one and only one unless explicitly so stated. Moreover, no element, component, nor method or process step in this disclosure is intended to be dedicated to the public regardless of whether the element, component, or step is explicitly recited in the Claims. No claim element herein is to be construed under the provisions of 35 U.S.C. Sec. 112, sixth paragraph, unless the element is expressly recited using the phrase means for . . . and no method or process step herein is to be construed under those provisions unless the step, or steps, are expressly recited using the phrase comprising the step(s) of . . . .