CORDIC DMA Engines for Continuous Calculation Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing CORDIC implementations require continuous CPU involvement for each calculation step, leading to inefficient CPU loading and slowed execution times in industrial applications.
Innovation Solution
Integration of Direct Memory Access (DMA) engines to manage data transfer between a CORDIC and memory, allowing for simultaneous CPU operations while the CORDIC performs calculations, using start and end triggers to streamline data copying.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If CPU continuously involves in each CORDIC calculation step, then calculation accuracy is maintained, but CPU loading increases and execution time increases
Solution Approach 1:
A DMA engine is introduced as an intermediary component between the CPU and the CORDIC unit. The DMA engine automatically transfers calculation data sets from memory to the CORDIC unit and retrieves result data sets without requiring continuous CPU intervention. This mediator enables the CORDIC unit to operate independently with high speed while maintaining calculation accuracy through automated data handling.
Solution Approach 2:
The system pre-loads multiple calculation data sets into memory before the CORDIC unit begins processing. The DMA engine is configured to automatically fetch the next calculation data set from memory as soon as the current one is processed, eliminating waiting time. This preliminary preparation of data allows the CORDIC unit to continuously execute calculations without CPU intervention, significantly improving execution speed while maintaining accuracy.
2Reliability
If CPU continuously loads data into CORDIC for each calculation, then data availability is ensured, but CPU bandwidth is consumed and processing efficiency decreases
Solution Approach 1:
The DMA engine serves as an intermediary that handles all data transfer operations between memory and the CORDIC unit. It automatically ensures data availability by fetching the next calculation data set as soon as the current one is processed, without consuming CPU bandwidth. This eliminates the trade-off between data availability and processing efficiency, as the DMA engine manages data supply independently.
Solution Approach 2:
The CORDIC unit is designed to be self-sufficient by automatically triggering data fetch operations through the DMA engine. When a calculation is completed, the CORDIC unit signals the DMA engine to retrieve the next data set, and when data is needed, it automatically initiates the transfer. This self-service mechanism eliminates the need for continuous CPU involvement in data loading, improving processing efficiency while maintaining data availability.
3Device complexity
If single CORDIC calculation is executed at a time with CPU involvement, then control simplicity is maintained, but overall execution time increases
Solution Approach 1:
The system prepares multiple calculation data sets in advance and loads them into memory. The DMA engine is pre-configured to automatically fetch and transfer data sequences without CPU intervention. This preliminary setup enables the CORDIC unit to process multiple calculations in rapid succession, significantly reducing total execution time while the control mechanism remains simple through automated triggering.
Solution Approach 2:
The DMA engine ensures continuous data supply to the CORDIC unit by automatically fetching the next calculation data set as soon as the current one is processed. This eliminates idle time and waiting periods, maintaining continuous useful action throughout the calculation process. The control simplicity is preserved through the automated nature of the DMA engine, which handles data transfer without complex CPU involvement.
Data Source
AI summary
A device includes a Coordinate Rotation Digital Computer (CORDIC), a memory, a first Direct Memory Access (DMA) engine, and a second DMA engine. The memory stores an array of calculation data sets and an array of result data sets corresponding to the calculation data sets. The first DMA engine copies each data set of the array of calculation data sets from the memory to the CORDIC. The second DMA engine copies each result data set of the array of result data sets from the CORDIC to the memory and generates a trigger in response to copying a final result data set of the array of result data sets to the memory.


