G06F7/5446

CORDIC COMPUTATION OF SIN/COS USING COMBINED APPROACH IN ASSOCIATIVE MEMORY
20220413799 · 2022-12-29 ·

A method for an associative memory device includes the steps of providing a look up table (LUT) with all possible solutions for N first iterations of a CORDIC algorithm, receiving a plurality of input angles, concurrently computing a location index for each angle of the plurality of angles and concurrently storing each index in a column of the associative memory device, copying a solution from the LUT in the location index to a plurality of columns associated with the index and concurrently performing M additional iterations of the CORDIC algorithm on the columns to compute a value of a trigonometric function for each angle.

Digital Signal Processor and Method
20220391204 · 2022-12-08 ·

A digital signal processor according to an embodiment comprises a processing stage. The processing stage is configured to receive Cartesian coordinates of a vector in a floating point format and to output polar coordinates of the vector in a floating point format. The processing stage comprises a first electronic circuit configured to iteratively implement, timed by a clock signal, a CORDIC algorithm in a floating point format.

Magnitude Calculation in a Magnetic Field Angle Tracking System

A magnetic field sensor configured to sense an angle of a magnetic field associated with a rotatable target includes a first magnetic field sensing structure configured to generate a first signal indicative of the magnetic field and a second magnetic field sensing structure configured to generate a second signal indicative of the magnetic field, wherein the first and second magnetic field sensing structures are configured to detect quadrature components of the magnetic field. A controller responsive to the first and second signals includes an angle tracking observer having a sine block and a cosine block operatively coupled to compute the angular position of the target using a control loop based in part on a non-orthogonality error term and a magnitude calculator that uses the sine block and the cosine block to compute a magnitude of the magnetic field.

Methods and apparatus for an encoder

Various embodiments of the present technology comprise a method and apparatus for an encoder. In various embodiments, the encoder is configured to perform offset and gain correction. The encoder includes a first correction circuit to perform offset and gain correction and a second correction circuit to perform additional offset and gain correction.

DYNAMIC GRADIENT CALIBRATION METHOD FOR COMPUTING-IN-MEMORY NEURAL NETWORK AND SYSTEM THEREOF
20210390415 · 2021-12-16 ·

A dynamic gradient calibration method for a computing-in-memory neural network is performed to update a plurality of weights in a computing-in-memory circuit according to a plurality of inputs corresponding to a correct answer. A forward operating step includes performing a bit wise multiply-accumulate operation on a plurality of divided inputs and a plurality of divided weights to generate a plurality of multiply-accumulate values, and performing a clamping function on the multiply-accumulate values to generate a plurality of clamped multiply-accumulate values according to a predetermined upper bound value, and comparing the clamped multiply-accumulate values with the correct answer to generate a plurality of loss values. A backward operating step includes performing a partial differential operation on the loss values relative to the weights to generate a weight-based gradient. The weights are updated according to the weight-based gradient.

DEVICE AND METHOD FOR CALCULATING ELEMENTARY FUNCTIONS USING SUCCESSIVE CUMULATIVE ROTATION CIRCUIT

A system and an accelerator circuit including a register file comprising instruction registers to store an instruction for evaluating an elementary function, and data registers comprising a first data register to store an input value. The accelerator circuit further includes a successive cumulative rotation circuit comprising a reconfigurable inner stage to perform a successive cumulative rotation recurrence, and a determination circuit to determine a type of the elementary function based on the instruction, and responsive to determining that the input value is a fixed-point number, configure the reconfigurable inner stage to a configuration for evaluating the type of the elementary function, wherein the successive cumulative rotation circuit is to calculate an evaluation of the elementary function using the reconfigurable inner stage performing the successive cumulative rotation recurrence.

Dynamic gradient calibration method for computing-in-memory neural network and system thereof

A dynamic gradient calibration method for a computing-in-memory neural network is performed to update a plurality of weights in a computing-in-memory circuit according to a plurality of inputs corresponding to a correct answer. A forward operating step includes performing a bit wise multiply-accumulate operation on a plurality of divided inputs and a plurality of divided weights to generate a plurality of multiply-accumulate values, and performing a clamping function on the multiply-accumulate values to generate a plurality of clamped multiply-accumulate values according to a predetermined upper bound value, and comparing the clamped multiply-accumulate values with the correct answer to generate a plurality of loss values. A backward operating step includes performing a partial differential operation on the loss values relative to the weights to generate a weight-based gradient. The weights are updated according to the weight-based gradient.

Neural Network Inference and Training Using A Universal Coordinate Rotation Digital Computer
20210350221 · 2021-11-11 ·

A system and method of implementing a neural network with a non-linear activation function is disclosed. A Universal Coordinate Rotation Digital Computer (CORDIC) is used to implement the activation function. Advantageously, the CORDIC is also used during training for back propagation. Using a CORDIC, activation functions such as hyperbolic tangent and sigmoid may be implemented without the use of a multiplier. Further, the derivatives of these functions, which are needed for back propagation, can also be implemented using the CORDIC.

Evaluating a mathematical function in a computational environment
11169781 · 2021-11-09 · ·

Apparatus for evaluating a mathematical function for a received input value includes a polynomial block configured to identify a domain interval containing the received input value over which the mathematical function can be evaluated, the mathematical function over the identified interval being approximated by a polynomial function; and evaluate the polynomial function for the received input value using a set of one or more stored values representing the polynomial function over the identified interval to calculate a first evaluation of the mathematical function for the received input value; and a CORDIC block for performing a CORDIC algorithm, configured to initialise the CORDIC algorithm using the first evaluation of the mathematical function for the received input value calculated by the polynomial block; and implement the CORDIC algorithm to calculate a refined evaluation of the mathematical function for the received input value.

Softmax calculation and architecture using a modified coordinate rotation digital computer (CORDIC) approach
11455144 · 2022-09-27 · ·

Apparatus and associated methods relate to providing a modified CORDIC approach and implementing the modified CORDIC approach in SoftMax calculation to reduce usage of hardware resources. In an illustrative example, a system may include (a) a first circuit configured to transform each element Vi of an input vector V into V.sub.i=V.sub.pi+k.sub.i.Math.ln 2 to generate a second data set, (b) a second circuit configured to perform exponential calculations on the second data set to generate a third data set that has a first mantissa .Math. j = 1 n 2 k j .Math. f exp ( V pj ) 2 k total
and an exponent K.sub.total, (c) a third circuit configured to perform logarithm calculations to generate a third sub data set that has a second mantissa 2 f ln ( .Math. j = 1 n 2 k j .Math. f exp ( V pj )