Virtual bucket multiple hash tables for efficient memory in-line deduplication application
First Claim
1. A method of deduplicating memory in a memory module having increased capacity, improved lifespan, and improved latency due to the method, the method comprising:
- identifying a hash table array comprising a plurality of hash tables each corresponding to a hash function, and each comprising physical buckets, each physical bucket comprising ways, and each being configured to store data;
identifying a plurality of virtual buckets each comprising some of the physical buckets, and each sharing at least one of the physical buckets with another of the virtual buckets;
hashing a block of data according to a corresponding one of the hash functions to produce a hash value;
determining whether an intended physical bucket of the physical buckets has available space for the block of data according to the hash value;
determining whether one of near-location physical buckets of the physical buckets has available space for the block of data when the intended physical bucket does not have available space, the near-location physical buckets being in a same one of the virtual buckets as the intended physical bucket; and
storing the block of data in the intended physical bucket when the intended physical bucket has available space.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of deduplicating memory in a memory module includes identifying a hash table array including hash tables each corresponding to a hash function, and each including physical buckets, each physical bucket including ways and being configured to store data, identifying a plurality of virtual buckets each including some of the physical buckets, and each sharing at least one of the physical buckets with another of the virtual buckets, hashing a block of data according to a corresponding one of the hash functions to produce a hash value, determining whether an intended physical bucket has available space for the block of data according to the hash value, and determining whether a near-location physical bucket has available space for the block of data when the intended physical bucket does not have available space, the near-location physical bucket being in a same one of the virtual buckets as the intended physical bucket.
-
Citations
17 Claims
-
1. A method of deduplicating memory in a memory module having increased capacity, improved lifespan, and improved latency due to the method, the method comprising:
-
identifying a hash table array comprising a plurality of hash tables each corresponding to a hash function, and each comprising physical buckets, each physical bucket comprising ways, and each being configured to store data; identifying a plurality of virtual buckets each comprising some of the physical buckets, and each sharing at least one of the physical buckets with another of the virtual buckets; hashing a block of data according to a corresponding one of the hash functions to produce a hash value; determining whether an intended physical bucket of the physical buckets has available space for the block of data according to the hash value; determining whether one of near-location physical buckets of the physical buckets has available space for the block of data when the intended physical bucket does not have available space, the near-location physical buckets being in a same one of the virtual buckets as the intended physical bucket; and storing the block of data in the intended physical bucket when the intended physical bucket has available space. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A dynamic random-access memory (DRAM) memory module for deduplicating memory, and having increased capacity, improved lifespan, and improved latency, the DRAM memory module comprising a DRAM comprising multiple hash tables in a hash table array, each of the hash tables comprising:
-
physical buckets each comprising ways for storing data; and a plurality of virtual buckets each comprising some of the physical buckets, wherein the DRAM memory module is configured to; interface with a memory interface to retrieve the stored data, and to deliver the retrieved data to the memory interface; receive a write request from the memory interface to store a block of data in the hash table array; perform a hash function on the block of data to determine an intended physical bucket of the physical buckets; determine whether the block of data is previously stored in either the intended physical bucket, or in one of near-location physical buckets of the physical buckets located in any of the virtual buckets to which the intended physical bucket belongs; and store the block of data in either the intended physical bucket or the one of the near-location physical buckets when the block of data is not previously stored therein, and when either the intended physical bucket or the one of the near-location physical buckets has available space. - View Dependent Claims (8, 9, 10)
-
-
11. A method of deduplicating memory in a memory module having increased capacity, improved lifespan, and improved latency due to the method, the method comprising:
-
receiving a write request corresponding to a block of data to store the block of data in a hash table array comprising a plurality of hash tables, each hash table comprising physical buckets, each physical bucket comprising ways, and each physical bucket being associated with a virtual bucket comprising some of the physical buckets; hashing the block of data according to a corresponding hash function to produce a hash value; determining an intended physical bucket of the physical buckets based on the hash value; determining whether an identical block of data is stored in the intended physical bucket; determining whether the identical block of data is stored in one of other physical buckets in a same one of the virtual buckets as the intended physical bucket when the identical block of data is not stored in the intended physical bucket; and storing the block of data in the intended physical bucket when the intended physical bucket has available space. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
Specification