Embedded Compression Headers for Shared CPU-GPU Memory Buffers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing systems face performance issues due to the lack of compatible interfaces between components, leading to inefficiencies in data transfer and compression, particularly when moving compressed data between GPU and CPU, which is exacerbated by limited pinned memory and dynamic render targets.
Innovation Solution
A system with a compression engine that embeds compression format information in the compressed data, allowing for scalable compression architecture across components on a System on a Chip (SoC), enabling shared compressed buffers with CPU and GPU, and supporting AI workloads by compressing data in memory-side caches.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If pinned memory is used for surfaces with specific characteristics, then memory access performance is improved, but memory flexibility and reusability deteriorate because the memory region cannot be moved out
Solution Approach 1:
The patent implements dynamic pinning where memory regions can be transitioned between pinned and unpinned states based on operational needs. The system dynamically adjusts memory pinning status to balance performance requirements with flexibility needs, allowing the same memory region to be pinned during rendering operations and unpinned when needing to be moved or reused.
2Productivity
If compression algorithms are applied to reduce data transfer size, then data transfer efficiency is improved, but compatibility between components with different interfaces deteriorates
Solution Approach 1:
The patent defines a universal compression interface that enables different hardware components (GPU, CPU, NPU) to compress and decompress data using standardized methods. This universal interface allows components with different native compression capabilities to work together through a common compression protocol, maintaining both efficiency and compatibility across the heterogeneous system.
Solution Approach 2:
The system introduces a compression engine as an intermediary component that mediates between different hardware components. This intermediary handles the compression and decompression operations using a standardized interface, allowing components with different native interfaces to communicate efficiently through the compression layer without requiring direct compatibility between each component pair.
3Adaptability or versatility
If multiple hardware components produce and consume compressed data with different interfaces, then system functionality is improved, but performance impact increases due to interface incompatibility
Solution Approach 1:
The patent implements a universal compression interface that enables different hardware components (GPU, CPU, NPU) to compress and decompress data using standardized methods. This universal interface allows components with different native compression capabilities to work together through a common compression protocol, maintaining both efficiency and compatibility across the heterogeneous system.
Data Source
AI summary
A system includes a compression engine that stores the compression format information embedded in the compressed data. The compression format information can be included in a header that includes compression control surface (CCS) information. The system includes a shared memory to store compressed data for multiple hardware pipelines, where blocks of the compressed data have a common memory footprint and the compression header. The compression engine can compress data to store in the shared memory including generation of the header. The compression engine can decompress data read from the shared memory, including identification of the compression format from the header.


