Contract-Based Memory Management for Isochronous Display Streams
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems face inefficiencies due to memory access latency, where critical requests are delayed behind non-critical ones, leading to potential screen corruption and increased service time, as they rely on serializing and queuing individual memory requests without adequate buffering to manage changes in data retrieval needs.
Innovation Solution
Implementing a system where a process engine, such as a display engine, sends contracts with sets of instructions to a memory controller to retrieve data, allowing for pre-fetching of large data blocks and reducing the number of critical memory requests, thereby improving data retrieval efficiency and reducing the need for large buffers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If individual memory requests are serialized through a common interface, then the memory access protocol is simplified, but critical requests are delayed behind non-critical ones causing increased service time and potential screen corruption
Solution Approach 1:
The system performs preliminary classification of memory requests into critical and non-critical categories before they enter the serialization queue. Critical requests are identified in advance based on their timing requirements and buffered separately, ensuring they can be serviced immediately when ready rather than waiting behind non-critical requests. This preliminary action prevents the time loss that would occur if all requests were simply queued in arrival order.
2Reliability
If a large display buffer is used to store all requested data, then data availability is ensured even when processing delays occur, but the buffer size and memory requirements increase significantly
Solution Approach 1:
The system performs preliminary classification of memory requests into critical and non-critical categories before they enter the serialization queue. Critical requests are identified in advance based on their timing requirements and buffered separately, ensuring they can be serviced immediately when ready rather than waiting behind non-critical requests. This preliminary action prevents the time loss that would occur if all requests were simply queued in arrival order.
Solution Approach 2:
The display buffer is segmented into multiple separate buffers, each dedicated to storing data for specific critical requests. Instead of using one large buffer to store all requested data, the system divides the buffering resource into smaller, purpose-specific segments. This segmentation allows the system to maintain data availability for critical requests while significantly reducing the total buffer size required, as each segment only needs to hold data for its specific purpose rather than all possible data.
3Reliability
If the display buffer must store sufficient data in case of processing delays, then underflow is prevented, but the buffer becomes larger and processing power requirements increase
Solution Approach 1:
The system performs preliminary classification of memory requests into critical and non-critical categories before they enter the serialization queue. Critical requests are identified in advance based on their timing requirements and buffered separately, ensuring they can be serviced immediately when ready rather than waiting behind non-critical requests. This preliminary action prevents the time loss that would occur if all requests were simply queued in arrival order.
Solution Approach 2:
The system dynamically adjusts the buffering strategy based on the criticality of requests. Instead of using a static large buffer for all data, the system creates dynamic, request-specific buffers that are allocated only when needed for critical requests. This dynamic approach allows the system to maintain reliability for critical operations while reducing overall processing power requirements, as buffers are created and managed on-demand rather than being permanently allocated.
Data Source
AI summary
A method of displaying an image includes generating a contract in the display engine, transferring the contract to the memory controller before the end of a sweep, generating a contract amendment in response to changes in the display engine, transferring the contract amendment to the memory controller, making a decision whether the contract amendment can be processed, fetching data from the memory controller according to the contract incorporating the contract amendment if the decision is that the contract amendment can be processed, sending the fetched data to the display engine in an isochronous stream; and processing the fetched data using the display engine.


