Data Hashing Engine Offloads CPU Load for VM Page Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing systems running multiple virtual machines face memory resource constraints due to inefficiencies in hash operations for page sharing, particularly because hypervisors perform these operations on the CPU, which can lead to resource bottlenecks.

Innovation Solution

Implementing a data hashing engine (DHE) within the memory sub-system to offload hash operations from the host system to the memory sub-system, allowing the host to focus on other tasks while the DHE performs hash operations on data stored in the memory sub-system, generating unique signatures for page sharing optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If hash operations are performed on the CPU by the host system, then page sharing functionality is achieved, but computational resources are consumed and performance bottlenecks occur

Engineering Contradiction:
Improvepage sharing efficiencyVSAvoidCPU computational load
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the hash operation functionality from the host system CPU and relocates it to a dedicated data hashing engine (DHE) within the memory sub-system. This separation allows the CPU to focus on other tasks while the DHE handles hash operations independently, resolving the contradiction between achieving page sharing and consuming computational resources.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The data hashing engine acts as an intermediary component between the host system and the memory devices. It receives data from the memory sub-system, performs hash operations, and returns results to the host, thereby enabling page sharing functionality without burdening the CPU with computational load.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If hash operations are offloaded to the memory sub-system, then host system resources are freed for other operations, but the memory sub-system must perform additional processing functions

Engineering Contradiction:
Improvehost system resource availabilityVSAvoidmemory sub-system functionality
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The data hashing engine within the memory sub-system performs multiple functions: it manages hash operations for page sharing, maintains translation tables, and coordinates with the host system. This multi-functionality allows the memory sub-system to handle both traditional memory operations and hash operations, freeing host resources while managing the increased complexity internally.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Quantity of substance

If multiple virtual machines share memory pages, then memory resource utilization improves, but hash operation overhead increases

Engineering Contradiction:
Improvememory resource utilizationVSAvoidhash operation time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The data hashing engine performs hash operations in advance when pages are allocated or modified, generating and storing translation table entries before they are needed for page sharing decisions. This preliminary action reduces the time required during actual page sharing operations, allowing multiple virtual machines to share memory pages efficiently without incurring hash operation overhead during runtime.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11636047B2Hash operations in memory for data sharing
Publication Date: 2023.04.25 MICRON TECHNOLOGY INC
  • US11636047B2 patent drawing
  • US11636047B2 patent drawing
  • US11636047B2 patent drawing

AI summary

A method includes receiving a command, from a host, to an address of a memory device, the command comprising a different address. The method also includes determining based on the address whether to perform a hash operation and, responsive to determining to perform the hash operation, accessing data stored in memory cells having the different address. The method further includes performing the hash operation using the data to generate a signature for the data and providing the host access to the signature to determine whether the data is duplicate data.