Delayed Link Compression for Interconnect Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High-speed interconnects in systems like processors and networks often face bottlenecks due to insufficient bandwidth, leading to reduced system performance, despite the use of buffers and queues, as data producers outpace the transfer rate supported by IO or socket-to-socket interconnects.
Innovation Solution
Implementing a low-latency link compression scheme that dynamically compresses packets based on queue depth, using multiple compression levels and delayed decompression techniques to prevent buffer overflow and enhance throughput without significantly impacting latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is compressed on the send side and decompressed at the receive side, then throughput is improved, but data path expansion is required
Solution Approach 1:
Data is compressed in advance before being placed in the transmit buffer, so that when data is read from the buffer, it is already in compressed form ready for transmission. This preliminary compression action allows the data path to maintain its original width while achieving higher effective throughput through the interconnect link.
Solution Approach 2:
A compression engine acts as an intermediary component between the data source and the interconnect link. This mediator compresses data before transmission and the corresponding decompression engine at the receiving end acts as an intermediary to restore the data, allowing the core data path to remain unchanged while benefiting from compression.
2Loss of time
If decompression is performed immediately upon data egress, then data is available for processing, but burst data occurs at multiple of supported throughput
Solution Approach 1:
Decompression is performed periodically at controlled intervals rather than continuously or immediately upon egress. The data path reads compressed data from the buffer at a steady rate matching the interconnect throughput, and decompression operations are scheduled periodically to process this data at a manageable pace, preventing throughput bursts.
Solution Approach 2:
The system maintains continuous operation by keeping compressed data in the buffer at a steady state, with the data path continuously reading at the interconnect's supported rate. Decompression operations continue continuously but at a controlled pace that matches system capabilities, ensuring uninterrupted data flow without creating bursts.
3Adaptability or versatility
If multiple compression levels are used dynamically, then adaptability to link conditions is improved, but device complexity increases
Solution Approach 1:
The compression engine dynamically adjusts between multiple compression levels based on real-time link conditions and buffer states. When the link is underutilized or buffers have space, higher compression levels are applied to maximize throughput. When latency is critical or buffers are full, compression is reduced or disabled, allowing the system to adapt flexibly to changing conditions.
Solution Approach 2:
The system changes compression parameters (such as compression ratio, algorithm intensity, or whether compression is applied at all) based on varying link conditions. By adjusting these parameters dynamically, the system can optimize performance for different scenarios without requiring a completely different compression scheme for each condition.
Data Source
AI summary
Apparatus, systems and methods for implementing delayed decompression schemes. As a burst of packets comprising compressed packets and uncompressed packets are received over an interconnect link, they are buffered in a receive buffer without decompression. Subsequently, the packets are forwarded from the receive buffer to a consumer such as processor core, with the compressed packets being decompressed prior to reaching the processor core. Under a first delayed decompression approach, packets are decompressed when they are read from the receive buffer in conjunction with forwarding the uncompressed packet (or uncompressed data contained therein) to the consumer. Under a second delayed decompression scheme, the packets are read from the receive buffer and forwarded to a decompressor using a first datapath width matching the width of the packets, decompressed, and then forwarded to the consumer using a second datapath width matching the width of the uncompressed data.


