Compression Tag State Interlock for Memory Bandwidth Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems fail to accurately determine whether memory accessed by clients is compressed or non-compressed, leading to incorrect data treatment and bandwidth inefficiencies when multiple clients access mixed compressed and non-compressed graphics data.
Innovation Solution
Implementing a system with a compression tag state read before memory arbitration, interlocking compression tag reads with memory access requests, and using a combination of naïve and compression-aware client request FIFOs with an interlock control unit to ensure accurate data handling and reordering of requests for optimized bandwidth utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If compression tag reads are performed before memory arbitration, then memory bandwidth optimization is achieved, but data corruption occurs when state changes between read and access
Solution Approach 1:
The system performs compression tag reads in advance before memory arbitration occurs. The interlock control unit queues read requests and determines compression states beforehand, allowing clients to construct appropriately sized access requests based on pre-determined compression states, thereby optimizing memory bandwidth while maintaining data accuracy through state interlocking.
Solution Approach 2:
The interlock control unit acts as an intermediary between compression tag storage and memory arbitration. It receives read requests, determines compression states, and controls the arbitration process by providing interlock signals that prevent state changes during critical access windows, ensuring data accuracy while enabling bandwidth optimization.
2Productivity
If memory access requests are reordered to reduce DRAM row-bank activation, then memory bandwidth is improved, but request order must be maintained for client-by-client basis
Solution Approach 1:
The system segments request handling into two distinct phases: reordering for arbitration optimization and reordering for client delivery. The interlock control unit reorders requests to minimize DRAM row-bank activations during arbitration, then uses a return data buffer to reorder responses back to the original client-by-client sequence, achieving bandwidth optimization while maintaining delivery order.
Solution Approach 2:
The system creates a copy of requests in the return data buffer that maintains the original client-by-client ordering. While arbitration operates on reordered requests for optimization, the return data buffer preserves and processes responses in the correct client sequence, allowing both optimized access and proper delivery without conflict.
3Measurement precision
If compression state is determined before arbitration, then correct buffer allocation is achieved, but state changes can invalidate the determination
Solution Approach 1:
The interlock control unit serves as an intermediary that bridges compression tag reads and memory arbitration. It determines compression states, queues requests appropriately, and generates interlock signals that prevent state changes during the critical window between determination and access, ensuring accurate buffer allocation without vulnerability to state changes.
Solution Approach 2:
The system performs compression state determination as a preliminary action before arbitration and access occur. By establishing the compression state early and locking it through interlock signals, the system ensures that buffer allocations are based on accurate, validated states that cannot change during the critical access window.
Data Source
AI summary
Systems and methods for determining a compression tag state prior to memory client arbitration may reduce the latency for memory accesses. A compression tag is associated with each portion of a surface stored in memory and indicates whether or not the data stored in each portion is compressed or not. A client uses the compression tags to construct memory access requests and the size of each request is based on whether or not the portion of the surface to be accessed is compressed or not. When multiple clients access the same surface the compression tag reads are interlocked with the pending memory access requests to ensure that the compression tags provided to each client are accurate. This mechanism allows for memory bandwidth optimizations including reordering memory access requests for efficient access.


