Compressed Data Transfer in Multi-Processor Shared Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multiprocessing systems face a data transfer bottleneck between processors and shared memory, limiting processing performance due to lower data transfer rates between shared memory and multiple coprocessors compared to inter-coprocessor data transfer rates.
Innovation Solution
Implementing a data compression and decompression system using a memory access unit that includes a data compressor and expander, along with a tag table to manage compression information, allowing for efficient transfer and storage of compressed data in shared memory, thereby aligning with uncompressed data access grains and optimizing bandwidth usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is transferred uncompressed between processors and shared memory, then data transfer simplicity is maintained, but data transfer rate is limited by bottleneck
Solution Approach 1:
The memory access unit is segmented into distinct functional components: a compression unit with compressor and expander, a tag table management unit, and a data transfer unit. This segmentation allows each component to specialize in specific tasks, improving overall data transfer efficiency while maintaining manageable complexity through modular design.
Solution Approach 2:
Data compression is performed preliminarily before data transfer to shared memory. The compressor processes data in advance, reducing its volume prior to transmission. This preliminary action ensures that the actual data transfer operation operates on already-compressed data, maximizing bandwidth utilization without adding complexity to the transfer mechanism itself.
2Quantity of substance
If data compression is implemented in memory access unit, then bandwidth utilization is improved, but device complexity increases
Solution Approach 1:
A tag table serves as an intermediary between the compression unit and shared memory. The tag table stores metadata about compressed data blocks, including compression status, size, and location information. This intermediary structure manages the complexity of compression operations by providing a systematic way to track and access compressed data without requiring complex control logic in the memory access unit.
Solution Approach 2:
The system creates and manages copies of data in different compression states. Compressed data is stored in shared memory while maintaining references in the tag table that point to the original data locations and compression parameters. This copying approach allows the system to work with compressed data efficiently while preserving the ability to retrieve and decompress original data when needed.
3Productivity
If multiple coprocessors access shared memory simultaneously, then processing parallelism is achieved, but data transfer bottleneck occurs
Solution Approach 1:
The system changes the parameter of data representation from uncompressed to compressed format. By transforming data into a more compact representation before storage in shared memory, the effective data transfer rate increases because less data needs to be moved across the memory interface, even when multiple coprocessors are accessing memory simultaneously.
Data Source
AI summary
The present invention provides methods and apparatus for transferring and storing data among processors and memory in a multiprocessor system. The data is compressed locally before it is sent to a shared memory. The memory stores the data in its compressed state, but the data is aligned in the memory in the same manner as uncompressed data would be. A tag table keeps track of the compression type and compressed data size for a set of data at a given address block. A data compressor and a data expander may be implemented in a direct memory access controller accessible to multiple coprocessors, or the compressor and the expander may be implemented within the coprocessors.


