Cyclic Buffer Doubly Mapped Virtual Memory Wrap-Around
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional cyclic buffer management in audio DMA hardware leads to reduced system performance and increased latency due to the need for temporary buffer allocations and multiple data copies to manage wrap-around operations.
Innovation Solution
The system doubly maps physical addresses of a cyclic buffer to a contiguous block of virtual memory, allowing direct write operations beyond the buffer boundaries without temporary buffers or multiple data copies, enabling seamless wrap-around data transfers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional cyclic buffer management uses temporary buffer allocations and multiple data copies to manage wrap-around operations, then buffer overflow is avoided, but system performance is reduced and latency is increased
Solution Approach 1:
The virtual memory space is segmented into two separate mappings of the cyclic buffer: a first mapping for normal write operations and a second mapping for wrap-around write operations. This segmentation allows the system to handle different write scenarios independently, eliminating the need for temporary buffers and multiple data copies while preventing buffer overflow through proper address space management.
Solution Approach 2:
The patent introduces a dimensional change by mapping the cyclic buffer to virtual memory twice with different address ranges. The first mapping covers the normal buffer range, while the second mapping covers the wrap-around range. This dimensional approach in virtual memory space allows seamless wrap-around writes without conventional buffer management overhead.
2Reliability
If conventional cyclic buffer management uses temporary buffer allocations and multiple data copies to manage wrap-around operations, then buffer overflow is avoided, but minimum achievable latency is increased
Solution Approach 1:
The virtual memory space is segmented into two separate mappings of the cyclic buffer: a first mapping for normal write operations and a second mapping for wrap-around write operations. This segmentation allows the system to handle different write scenarios independently, eliminating the need for temporary buffers and multiple data copies while preventing buffer overflow through proper address space management.
Solution Approach 2:
The doubly mapped virtual memory enables continuous write operations without interruption for wrap-around scenarios. The system maintains continuous useful action by allowing direct writes to either mapping without switching to temporary buffers, thus eliminating the latency introduced by buffer allocation and data copying operations.
3Device complexity
If the system uses a single mapping of cyclic buffer to virtual memory, then memory management is simple, but wrap-around writes require complex temporary buffer handling
Solution Approach 1:
The virtual memory space is segmented into two separate mappings of the cyclic buffer: a first mapping for normal write operations and a second mapping for wrap-around write operations. This segmentation allows the system to handle different write scenarios independently, eliminating the need for temporary buffers and multiple data copies while preventing buffer overflow through proper address space management.
Solution Approach 2:
The doubly mapped virtual memory acts as an intermediary that simplifies wrap-around write operations. Instead of requiring complex temporary buffer handling, the system uses the second virtual memory mapping as an intermediary target for wrap-around writes, making the operation as simple as a direct write to memory.
Data Source
AI summary
Systems and methods for cyclic buffer management are described. In one aspect, the systems and methods enable cyclic buffer wrap-around write operations independent of temporary buffer allocations and corresponding multiple data copies. To this end, the systems and methods map the cyclic buffer's physical addresses two-times (“doubly map”) to a consecutive block of virtual memory. When an application desires to write beyond the end of what represents the cyclic buffer, the systems and methods provide a logical pointer to the doubly mapped virtual memory, enabling the application to directly write into the virtual memory from the end of the first cyclic buffer mapping to the beginning of the second cyclic buffer mapping. The memory management operations automatically transfer the data out of this doubly mapped virtual memory into the cyclic buffer for subsequent extraction and presentation to the user.


