Compressed Data Delta Generation Using Shared Translation Table Entries
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory subsystems with translation tables do not effectively utilize data compression to free up memory blocks occupied by identical or similar fragments, leading to inefficient use of memory resources.
Innovation Solution
Incorporating share bits and delta bits into translation table entries, with pointers to memory blocks that include reuse bits, allowing multiple entries to share identical or similar memory blocks and generating private deltas for non-shared fragments, thereby enabling efficient data compression by combining and freeing up memory blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If multiple translation table entries reference identical memory blocks, then memory blocks are occupied to maintain separate pointers, but data compression can be improved by combining these entries
Solution Approach 1:
Multiple translation table entries that reference identical memory blocks are merged into a single shared reference. The patent implements this by introducing share bits and delta bits in the translation table entry structure, allowing multiple PTEs to point to the same memory block through a shared reference mechanism, thereby reducing the number of separate pointers needed and freeing up memory blocks.
Solution Approach 2:
The translation table entry structure is enhanced with multi-functional bits that serve multiple purposes. The share bit indicates whether a memory block is shared among multiple PTEs, the delta bit indicates the presence of a private delta for non-identical fragments, and the reuse bit in the memory block tracks the number of sharing PTEs. This universal structure enables both compression and efficient memory management.
2Quantity of substance
If data compression is applied to reduce memory storage, then memory efficiency improves, but identifying and combining identical fragments increases processing complexity
Solution Approach 1:
The system performs preliminary actions by setting up the share bit, delta bit, and reuse bit structures in advance before compression operations. These pre-configured bits enable efficient identification and comparison of memory block references without requiring complex real-time analysis, as the structural framework for detecting identical fragments is already in place.
Solution Approach 2:
The patent uses bit state changes as indicators to identify and categorize different types of memory block references. The share bit, delta bit, and reuse bit act as visual indicators (like color codes) that immediately reveal whether a PTE is sharing a memory block, has private differences, or is the sole reference, simplifying the detection process.
3Productivity
If translation table entries include additional bits for sharing and delta information, then compression capability improves, but entry size and complexity increase
Solution Approach 1:
The translation table entry is segmented into distinct functional components: standard pointer fields for memory block addressing, a share bit for indicating shared references, a delta bit for marking private differences, and associated fields for storing share counts and delta information. This segmentation allows each component to serve its specific function efficiently while maintaining overall structure clarity.
Data Source
AI summary
A translation table has entries that each include a share bit and a delta bit, with pointers that point to a memory block that includes reuse bits. The share bit is set to indicate a translation table entry is sharing its memory block with another translation table entry. In addition, a translation table entry may include a private delta in the form of a pointer that references a memory fragment in the memory block that is not shared with other translation table entries, wherein the private delta references previously-stored content. When a translation table has a private delta, its delta bit is set. The private delta is generated by analyzing a data buffer for content that is similar to previously-stored content.


