Associative Memory CORDIC with LUT for Parallel Sin/Cos
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for computing trigonometric functions, such as the CORDIC algorithm, face inefficiencies in handling multiple angles concurrently, leading to high computational complexity and time consumption.
Innovation Solution
A combined approach using a lookup table (LUT) to store results of the first N iterations of the CORDIC algorithm and performing additional M iterations concurrently in an associative memory device, reducing overall computational complexity by leveraging the associative memory's parallel processing capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If the CORDIC algorithm is performed iteratively for multiple angles, then accurate trigonometric function values are obtained, but computational time and complexity increase significantly
Solution Approach 1:
The patent segments the computation process into two distinct phases: (1) a lookup table phase that pre-computes and stores results for the first N iterations of the CORDIC algorithm, and (2) a parallel computation phase that performs the remaining M iterations concurrently for multiple angles using an associative memory device. This segmentation allows the time-consuming iterative computation to be partially replaced by fast table lookup while maintaining accuracy.
Solution Approach 2:
The patent applies preliminary action by pre-computing the first N iterations of the CORDIC algorithm for all possible input angles and storing these results in a lookup table before actual computation is needed. This preliminary preparation enables subsequent queries to retrieve partial results instantly, avoiding redundant computation and significantly reducing computational time for multiple angles.
2Measurement precision
If the CORDIC algorithm is performed for multiple angles sequentially, then accurate results are obtained, but productivity decreases due to sequential processing
Solution Approach 1:
The patent segments the computation into a sequential lookup phase (first N iterations) and a parallel computation phase (remaining M iterations). The associative memory device is specifically designed to handle multiple angles concurrently in the second phase, with each column independently performing CORDIC iterations on different input angles simultaneously, thereby achieving high productivity while maintaining accuracy.
Solution Approach 2:
The patent transitions from sequential one-dimensional processing to parallel multi-dimensional processing by utilizing the associative memory device's columnar structure. Multiple input angles are processed simultaneously across different columns, effectively adding a parallelism dimension to the computation and dramatically increasing productivity for batch trigonometric function evaluation.
3Loss of time
If a lookup table stores all results for T iterations, then computational time is reduced, but device complexity and memory requirements increase
Solution Approach 1:
The patent segments the lookup table requirements by only storing results for the first N iterations rather than all T iterations. This segmentation reduces the lookup table size from 2^T entries to 2^N entries, where N < T. The remaining M = T - N iterations are computed in parallel using the associative memory device, achieving a balance between memory requirements and computational efficiency.
Solution Approach 2:
The patent applies partial action by using the lookup table for only the first N iterations of the CORDIC algorithm, rather than storing complete results for all T iterations. This partial use of the lookup table, combined with parallel computation for the remaining iterations, reduces device complexity while still achieving significant speedup compared to fully sequential computation.
Data Source
AI summary
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.


