DMA Controller Dynamic Priority Arbitration for Memory Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Prior art DMA implementations suffer from high latency and excessive complexity due to static priority assignment and inability to dynamically respond to real-time transfer demands, leading to reduced system performance and risk of DMA failures.
Innovation Solution
A DMA controller with multiple channels, each equipped with a datapath and control circuit for data transfer, along with a prioritizer that arbitrates requests and increases memory transfer priority when peripheral channels are not ready, and a multiplexer for dynamic memory address computation, enabling flexible and efficient data transfer between internal and external memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single pipeline is used for all memory accesses, then device complexity is reduced, but speed of memory access deteriorates (cannot support independent fast accesses to internal memory and slow accesses to external memory at the same time)
Solution Approach 1:
The DMA controller is segmented into multiple independent pipeline units (first memory pipeline for internal memory, second memory pipeline for external memory) that can operate simultaneously. Each pipeline is dedicated to specific memory access patterns, allowing parallel processing of multiple DMA requests without interference, thus maintaining high speed while avoiding the complexity of a fully integrated single pipeline.
Solution Approach 2:
The system transitions from a single-dimensional sequential pipeline to a multi-dimensional parallel pipeline architecture. By adding the dimension of temporal parallelism (multiple pipelines operating simultaneously) and functional differentiation (internal vs external memory pipelines), the system achieves higher overall throughput without proportionally increasing complexity.
2Device complexity
If static priority assignment is used among channels, then device complexity is reduced, but reliability deteriorates (cannot dynamically respond to transitory real-time transfer demands caused by congestion delays)
Solution Approach 1:
The priority assignment mechanism transitions from static to dynamic. The arbitrator monitors real-time system state including congestion conditions and adjusts channel priorities dynamically. When congestion is detected on high-priority channels, the system can temporarily elevate lower-priority channels, ensuring reliable DMA transfer completion under varying load conditions without requiring complex manual reconfiguration.
Solution Approach 2:
The priority arbitration system incorporates feedback loops that monitor DMA request queues, transfer completion rates, and congestion indicators. This feedback information is used to dynamically adjust channel priorities, ensuring that the system adapts to real-time conditions and maintains reliable transfer completion even when traffic patterns change unexpectedly.
3Device complexity
If fixed pipelines assigning specific channels to specific memory pipelines are used, then device complexity is reduced, but adaptability deteriorates (does not support unrestricted operation where source and destination may independently be internal or external)
Solution Approach 1:
The memory pipeline architecture is designed with universal interfaces that accept DMA requests from any channel regardless of whether the source or destination is internal or external memory. The arbitrator and pipeline controllers are configured to handle multiple transfer types (internal-to-external, external-to-internal, internal-to-internal, external-to-external) through the same pipeline infrastructure, providing unrestricted operation without requiring separate dedicated pipelines for each transfer type.
Data Source
AI summary
A DMA controller includes at least one peripheral DMA channel for handling DMA transfers on a peripheral access bus; at least one memory DMA stream, including a memory destination channel and a memory source channel, for handling DMA transfers on first and second memory access buses; first and second address computation units for computing updated memory addresses for DMA transfers; first and second memory pipelines for supplying memory addresses to the first and second memory access buses, respectively, and for transferring data on the first and second memory access buses; and a multiplexer configured to supply first and second current memory addresses to selected ones of the first and second memory pipelines in response to a control signal.


