G06F12/1018

Single Double Cuckoo Hash
20170286292 · 2017-10-05 ·

In a network element a decision apparatus has a plurality of multi-way hash tables of single size and double size associative entries. A logic pipeline extracts a search key from each of a sequence of received data items. A hash circuit applies first and second hash functions to the search key to generate first and second indices. A lookup circuit reads associative entries in the hash tables that are indicated respectively by the first and second indices, matches the search key against the associative entries in all the ways. Upon finding a match between the search key and an entry key in an indicated associative entry. A processor uses the value of the indicated associative entry to insert associative entries from a stash of associative entries into the hash tables in accordance with a single size and a double size cuckoo insertion procedure.

METHOD AND APPARATUS FOR ENABLING LARGER MEMORY CAPACITY THAN PHYSICAL MEMORY SIZE

A method of retrieving data stored in a memory associated with a dedupe module is provided. The method includes: identifying a logical address of the data; identifying a physical line ID of the data in accordance with the logical address by looking up at least a portion of the logical address in a translation table; locating a respective physical line, the respective physical line corresponding to the PLID; and retrieving the data from the respective physical line, the retrieving including copying a respective hash cylinder to the read cache, the respective hash cylinder including: a respective hash bucket, the respective hash bucket including the respective physical line; and a respective reference counter bucket, the respective reference counter bucket including a respective reference counter associated with the respective physical line.

METHOD AND APPARATUS FOR ENABLING LARGER MEMORY CAPACITY THAN PHYSICAL MEMORY SIZE

A method of retrieving data stored in a memory associated with a dedupe module is provided. The method includes: identifying a logical address of the data; identifying a physical line ID of the data in accordance with the logical address by looking up at least a portion of the logical address in a translation table; locating a respective physical line, the respective physical line corresponding to the PLID; and retrieving the data from the respective physical line, the retrieving including copying a respective hash cylinder to the read cache, the respective hash cylinder including: a respective hash bucket, the respective hash bucket including the respective physical line; and a respective reference counter bucket, the respective reference counter bucket including a respective reference counter associated with the respective physical line.

Methods, apparatus, and systems for secure demand paging and other paging operations for processor devices

A secure demand paging system includes a secure internal memory having a table relating physical addresses to virtual addresses, a non-volatile memory, a decryption module and a hash module between the secure memory and the non-volatile memory to allow for decryption and integrity verification of data stored in the non-volatile memory during a transfer to said secure memory and means for connecting the secure memory to a volatile page swap memory such that the non-volatile memory is bypassable during a page swap.

Methods, apparatus, and systems for secure demand paging and other paging operations for processor devices

A secure demand paging system includes a secure internal memory having a table relating physical addresses to virtual addresses, a non-volatile memory, a decryption module and a hash module between the secure memory and the non-volatile memory to allow for decryption and integrity verification of data stored in the non-volatile memory during a transfer to said secure memory and means for connecting the secure memory to a volatile page swap memory such that the non-volatile memory is bypassable during a page swap.

Cluster-wide memory management using similarity-preserving signatures

A method includes, in a computing system that includes one or more compute nodes that run clients, defining memory chunks, each memory chunk including multiple memory pages accessed by a respective client. Respective similarity-preserving signatures are computed for one or more of the memory chunks. Based on the similarity-preserving signatures, an identification is made that first and second memory chunks differ in content in no more than a predefined number of memory pages with at least a predefined likelihood. Efficiency of access to the identified first and second memory chunks is improved.

Cluster-wide memory management using similarity-preserving signatures

A method includes, in a computing system that includes one or more compute nodes that run clients, defining memory chunks, each memory chunk including multiple memory pages accessed by a respective client. Respective similarity-preserving signatures are computed for one or more of the memory chunks. Based on the similarity-preserving signatures, an identification is made that first and second memory chunks differ in content in no more than a predefined number of memory pages with at least a predefined likelihood. Efficiency of access to the identified first and second memory chunks is improved.

ASSOCIATIVE AND ATOMIC WRITE-BACK CACHING SYSTEM AND METHOD FOR STORAGE SUBSYSTEM

In response to a cacheable write request from a host, physical cache locations are allocated from a free list, and the data blocks are written to those cache locations without regard to whether any read requests to the corresponding logical addresses are pending. After the data has been written, and again without regard to whether any read requests are pending against the corresponding logical addresses, metadata is updated to associate the cache locations with the logical addresses. A count of data access requests pending against each cache location having valid data is maintained, and a cache location is only returned to the free list when the count indicates no data access requests are pending against the cache location.

APPARATUS AND METHOD FOR HASH GENERATION
20170242800 · 2017-08-24 · ·

A disclosed hash generation method includes: calculating a hash matrix for identifying original data, which corresponds to a product multiplied by a partial hash matrix of a last block of plural blocks divided from the original data, from a product for each of blocks other than the last block, which is calculated by multiplying from a partial hash matrix of a first block of the plural blocks up to a partial hash matrix of the block; and calculating a hash matrix for identifying changed data, by multiplying a product of a product multiplied lastly by a partial hash matrix of a block immediately before a changed block and a partial hash matrix of the changed block by an inverse matrix of a product multiplied lastly by a partial hash matrix of an unchanged original block and a product multiplied lastly by a partial hash matrix of the last block.

APPARATUS AND METHOD FOR HASH GENERATION
20170242800 · 2017-08-24 · ·

A disclosed hash generation method includes: calculating a hash matrix for identifying original data, which corresponds to a product multiplied by a partial hash matrix of a last block of plural blocks divided from the original data, from a product for each of blocks other than the last block, which is calculated by multiplying from a partial hash matrix of a first block of the plural blocks up to a partial hash matrix of the block; and calculating a hash matrix for identifying changed data, by multiplying a product of a product multiplied lastly by a partial hash matrix of a block immediately before a changed block and a partial hash matrix of the changed block by an inverse matrix of a product multiplied lastly by a partial hash matrix of an unchanged original block and a product multiplied lastly by a partial hash matrix of the last block.