Hybrid DMA Descriptor Blocks for Non-Contiguous Memory Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing DMA descriptor implementations either limit data transfers due to contiguous memory constraints or incur high memory overhead with linked lists, failing to efficiently manage large data transfers between non-contiguous memory addresses.
Innovation Solution
A hybrid descriptor system using linked lists of descriptor blocks, where each block stores multiple entries in contiguous memory, allowing flexible expansion with reduced memory overhead, enabling efficient data transfers between non-contiguous memory addresses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional linked lists are used to manage DMA descriptors for non-contiguous memory addresses, then flexibility for accommodating numerous data segments is improved, but memory overhead increases significantly
Solution Approach 1:
The descriptor structure is segmented into fixed-size blocks (e.g., 8 entries per block) rather than using individual linked list nodes for each descriptor entry. This segmentation allows multiple descriptors to be packed into contiguous memory blocks, reducing the memory overhead associated with linked list pointers while maintaining the ability to accommodate numerous data segments through block chaining.
2Quantity of substance
If contiguous memory blocks are used for descriptor storage, then memory overhead is reduced, but the ability to handle non-contiguous memory addresses is limited
Solution Approach 1:
The solution implements a nested structure where fixed-size descriptor blocks are chained together through next-pointer fields. Each block contains multiple descriptor entries in contiguous memory, and blocks themselves are linked to form a hierarchical structure that can represent non-contiguous memory address spaces while maintaining efficient contiguous storage within each block.
3Quantity of substance
If fixed-size descriptor blocks are used instead of linked lists, then memory overhead is reduced by nearly half, but complexity in managing block chains increases
Solution Approach 1:
All descriptor blocks are standardized with uniform fixed sizes and identical field structures (descriptor entries followed by a next-pointer). This homogeneity simplifies memory allocation, traversal, and management operations compared to heterogeneous linked list nodes, as the DMA controller can use identical processing logic for all blocks regardless of their position in the chain.
Data Source
AI summary
Methods and systems are disclosed for transferring data using descriptors to reference memory locations at which data is to be written to or read from. Each descriptor references a respective linked list of descriptor blocks. Each of the descriptor blocks includes a contiguous portion of the memory that stores a plurality of addresses, at which data is to be written to or read from. In response to receiving the data transfer request, a set of data is transferred from a first set of addresses specified in a first descriptor to a second set of addresses specified in a second descriptor by traversing the linked lists of descriptor blocks in the first and second descriptors.


