Shared Buffer DMA Engine for Multi-Display Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-display systems with increasing resolutions and frame rates face challenges in efficiently controlling displays, leading to latency issues and inefficient buffering requirements, particularly in safety-critical applications like automotive systems, where insufficient buffer sizes result in dropped frames and inability to support future higher resolution formats.
Innovation Solution
A shared local buffer system dynamically allocates and deallocates space among multiple display threads and channels, using a DMA engine to maintain contiguity and concatenate free space, allowing for reallocation based on changing resolution needs and usage patterns, thereby optimizing buffer size and reducing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a fixed buffer size is allocated for each display thread, then buffer availability is ensured, but buffer space is wasted when displays operate at lower resolutions
Solution Approach 1:
The patent implements dynamic buffer allocation where the buffer size for each display thread is adjusted according to the actual resolution requirements. The buffer management unit reallocates buffer resources based on current display operations, transitioning from a static fixed allocation to a dynamic adaptive allocation that matches actual usage needs.
Solution Approach 2:
The system changes the buffer size parameter dynamically based on resolution requirements. When a display operates at lower resolution, the allocated buffer size is reduced accordingly. This parameter adjustment allows the system to optimize memory usage while maintaining adaptability to different resolution formats.
2Productivity
If buffer space is reallocated dynamically, then buffer efficiency is improved, but system complexity increases
Solution Approach 1:
The buffer management unit operates autonomously to handle buffer reallocation without requiring manual intervention or complex external control. The system self-adjusts buffer allocations based on detected display operations, automatically managing the complexity of buffer management internally while presenting a simplified interface to the rest of the system.
Solution Approach 2:
The buffer management unit acts as an intermediary between the display threads and the actual buffer memory. This intermediary layer handles the complexity of allocation and reallocation operations, shielding the display threads from buffer management details while enabling efficient dynamic resource sharing.
3Speed
If contiguous buffer allocation is maintained, then memory access efficiency is improved, but reallocation operations become more complex
Solution Approach 1:
The buffer is segmented into separate allocatable regions for each display thread rather than using a single large contiguous block. This segmentation allows individual threads to be allocated or deallocated without disrupting the entire buffer structure, simplifying the reallocation process while maintaining contiguous access patterns for active threads.
Solution Approach 2:
The system performs preliminary buffer allocation and maintains contiguous structures in advance. By pre-establishing contiguous buffer regions and preparing for reallocation operations, the system minimizes disruption during actual reallocation events, maintaining memory access efficiency while reducing the complexity of on-demand reallocation operations.
Data Source
AI summary
A system includes a display subsystem. The display subsystem includes a shared buffer having allocated portions, each allocated to one of a plurality of display threads, each display thread associated with a display peripheral. The display subsystem also includes a direct memory access (DMA) engine configured to receive a request from a main processor to deallocate an amount of space from a first allocated portion associated with a first display thread. In response to receiving the request, the DMA engine deallocates the amount of space from the first allocated portion and shifts the allocated portions of at least some of other display threads to maintain contiguity of the allocated portions and concatenate free space at an end of the shared buffer.


