Hardware Reference Count Tracking for Memory Deduplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems using memory deduplication or compression, the decoupling of address space from physical memory space leads to inefficiencies in memory management, as system software is unaware of actual physical memory consumption, resulting in memory pressure issues and potential data loss or errors when physical memory is full.

Innovation Solution

Implementing a page-based reference count tracking scheme in hardware, accessible from the software stack, to collect and utilize reference count information for each page, assisting the operating system in swapping decisions to maximize memory release.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory deduplication or compression techniques are used to increase addressable memory space, then the amount of addressable memory is increased, but system software becomes unaware of actual physical memory consumption

Engineering Contradiction:
Improveaddressable memory spaceVSAvoidphysical memory consumption information
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The patent introduces reference count information as an intermediary mechanism that bridges the gap between virtual address space and physical memory space. The reference count tracker monitors and reports the number of references to each physical memory page, providing system software with accurate information about physical memory consumption while maintaining the benefits of memory deduplication and compression.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If memory reduction techniques are implemented to improve memory efficiency, then memory usage is optimized, but memory pressure issues and data loss risks occur when physical memory is full

Engineering Contradiction:
Improvememory efficiencyVSAvoiddata safety
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where reference count information is continuously tracked and provided to system software. This feedback enables the operating system to make informed decisions about memory management, identifying which pages can be safely swapped or released based on their reference counts, thereby preventing data loss while maintaining high memory efficiency.

Inventive Principle:
Principle #23Feedback

3Device complexity

If traditional paging mechanisms are used without reference count information, then system simplicity is maintained, but swapping decisions cannot optimize memory release

Engineering Contradiction:
Improvesystem simplicityVSAvoidmemory management efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies preliminary action by tracking reference counts in advance before swapping decisions are made. The reference count tracker continuously monitors and updates reference information, so that when the operating system needs to make paging decisions, accurate and up-to-date information is already available, enabling optimized memory release without complicating the overall system architecture.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11392491B2Hardware-assisted paging mechanisms
Publication Date: 2022.07.19 INTEL CORP
  • US11392491B2 patent drawing
  • US11392491B2 patent drawing
  • US11392491B2 patent drawing

AI summary

Processing circuitry for computer memory management includes memory reduction circuitry to implement a memory reduction technique; and reference count information collection circuitry to: access a memory region, the memory region subject to the memory reduction technique; obtain an indication of memory reduction of the memory region; calculate metrics based on the indication of memory reduction of cache lines associated with the memory region; and provide the metrics to a system software component for use in memory management mechanisms.