Programmable DMA Units for Flexible Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing direct memory access (DMA) technologies impose limitations in digital signal processing, particularly in memory allocation and management, which hinder efficient and flexible data transfer between data storage and processing devices, leading to overhead that prevents digital signal processors from optimal numerical manipulation.
Innovation Solution
A method and apparatus implementing programmable direct memory access units that allow for efficient and flexible data transfer between data storage and processing devices, using a job scheduler, job manager, and programmable DMA units with registers to manage DMA commands, enabling independent operation of internal and external DMA engines for pipelining and multiple data transfers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a single DMA controller controls the transfer, then the data transfer can be managed centrally, but the memory allocation flexibility is restricted and the sink device cannot autonomously manage its local memory
Solution Approach 1:
The patent segments the DMA functionality into two independent parts: an external DMA engine that handles data transfer between system memory and local memory, and an internal DMA engine that handles data transfer within the sink device. This segmentation allows each DMA engine to operate autonomously with its own programmable capabilities, eliminating the need for a single centralized controller and enabling flexible memory allocation by the sink device itself.
Solution Approach 2:
The sink device is empowered with self-service capabilities through programmable DMA units that allow it to autonomously manage its local memory allocation and data transfer operations. The internal DMA engine enables the sink device to independently handle data processing without requiring centralized control, thus improving memory allocation flexibility while maintaining operational simplicity.
2Productivity
If the DSP manages data transfer, then data movement can be controlled, but the DSP is prevented from optimal numerical manipulation due to overhead
Solution Approach 1:
The patent extracts the data transfer management function from the DSP by implementing dedicated DMA engines (external and internal) that handle all data movement operations. This extraction allows the DSP to focus exclusively on numerical manipulation without the overhead of managing data transfers, thereby improving productivity while minimizing time loss through hardware-accelerated DMA operations.
Solution Approach 2:
The internal DMA engine acts as an intermediary between the external DMA engine and the sink device, handling data transfer operations autonomously. This intermediary mechanism relieves the DSP of data management responsibilities, allowing it to dedicate full resources to numerical manipulation while the DMA engines efficiently handle data movement in the background.
3Adaptability or versatility
If data is broken across multiple jobs for transfer, then flexibility in job processing is improved, but latency increases and efficiency is reduced
Solution Approach 1:
The patent enables continuous data transfer operations by allowing the internal DMA engine to process data streams without requiring job boundaries. The programmable DMA units can handle large input data continuously, maintaining useful action throughout the transfer process and avoiding the latency and inefficiency associated with breaking data across multiple jobs, while still providing adaptability through programmable control.
Data Source
AI summary
Method and system embodying the method for a direct memory access between a data storage and a data processing device via one or more direct memory access units, comprising transferring data between the data storage and a first direct memory access engine of a respective one or more direct memory access units and providing the data for a second direct memory access engine of the respective one or more direct memory access units; and transferring the data provided by the first direct memory access engine by a second direct memory access engine to the data processing device via the second direct memory access engine is disclosed.


