Multi-Level Hashing System for Cache Collision Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cache systems face inefficiencies due to high probabilities of hash collisions, leading to delays and cache misses, as traditional hash functions are time-consuming and prone to accidental deletion of important data, especially when the cache is nearly full.

Innovation Solution

Implementing a multi-level hashing system with different-sized hash tables using prime and integer-based hash functions, where each successive layer reduces hash collision probabilities, and a content-addressable memory (CAM) is used to store collided entries, ensuring constant access time and low failure probability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a traditional hash function is used in the cache, then the cache can store and retrieve data, but hash collisions occur frequently causing delays and cache misses

Engineering Contradiction:
Improvecache hit rateVSAvoidaccess delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides a single hash table into multiple hash tables (first hash table, second hash table, etc.), each handling different portions of the data. When a collision occurs in one hash table, the system segments the resolution process by attempting to store the data in subsequent hash tables, thereby distributing the collision load and maintaining cache performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary content-addressable memory (CAM) between the hash tables and the final storage location. The CAM acts as a mediator that can resolve collisions by providing alternative storage paths, reducing the impact of hash collisions on cache hit rate and access time.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If the cache is filled to increase storage capacity, then more data can be cached, but hash collision probability increases significantly

Engineering Contradiction:
Improvecache capacityVSAvoidcollision probability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

By segmenting the cache into multiple hash tables, the patent allows the cache to maintain high capacity while distributing entries across multiple tables. This segmentation ensures that even as total cache capacity increases, the probability of collision in any single table remains manageable, as collisions can be resolved by attempting storage in subsequent tables.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds an additional dimension to the hash table structure by introducing multiple hash tables in sequence rather than relying on a single table. This dimensional expansion allows the system to accommodate more data while providing multiple pathways for collision resolution, effectively reducing collision probability even at high cache utilization.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If multiple hash tables are implemented to reduce collisions, then collision probability decreases, but system complexity increases

Engineering Contradiction:
Improvecollision probabilityVSAvoidhash table structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the hashing function into multiple segments (first hash function, second hash function, etc.), each corresponding to a separate hash table. This segmentation allows the system to reduce collision probability through the combined effect of multiple tables while keeping each individual table relatively simple in structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a partial multi-table approach where only the necessary number of hash tables are used to achieve acceptable collision rates. The system does not require all possible hash tables to be fully utilized, allowing for a balance between collision reduction and system complexity by using just enough tables to achieve the desired performance.

Inventive Principle:
Principle #16Partial or excessive action

4Quantity of substance

If hash functions are performed frequently to handle collisions, then data can be stored despite collisions, but processing time increases

Engineering Contradiction:
Improvedata storage capabilityVSAvoidhash function execution time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary hashing by computing hash values for multiple tables in advance or in parallel rather than sequentially. By preparing the hashing structure beforehand and using the CAM to pre-resolve potential collisions, the system reduces the actual processing time required when storing data, even though multiple hash functions are involved.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The CAM serves as an intermediary that can quickly determine whether a collision will occur before full hash function execution is required. This preliminary check by the CAM allows the system to avoid executing multiple complete hash functions in cases where the CAM can resolve the situation, thereby reducing overall processing time while maintaining data storage capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10007615B1Methods and apparatus for performing fast caching
Publication Date: 2018.06.26 MARVELL ASIA PTE LTD
  • US10007615B1 patent drawing
  • US10007615B1 patent drawing
  • US10007615B1 patent drawing

AI summary

Computer circuitry is provided for fast caching, which includes a memory, a processor, and a cache. The memory stores a data block. The processor retrieves the data block from the memory and determines whether to store the data block in the cache. The cache performs a first hash function on the data block in response to the processor determining to store the data block in the cache. The cache performs a second hash function on the data block if the first hash function results in a collision.