Overprovisioned Memory Virtual Capacity Kernel Driver

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integrating overprovisioned memory devices into existing systems is challenging due to variable memory capacity changes caused by data errors, compression, deduplication, and error-correction, which require significant modifications to the memory management unit (MMU) and kernel of the host OS, and can lead to memory shortages and performance issues.

Innovation Solution

A memory device with a memory interface and overprovisioning logic that uses a kernel driver module to manage virtual memory capacity, providing a fast swap of anonymous and file pages between a frontswap and cleancache space, allowing dynamic adjustment of virtual memory without modifying the MMU, and supporting data compression, deduplication, and error-correction across various system interfaces.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If overprovisioned memory devices are integrated into existing systems, then virtual memory capacity is increased, but significant modifications to the memory management unit (MMU) and kernel of the host OS are required

Engineering Contradiction:
Improvevirtual memory capacityVSAvoidkernel modification complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the memory management functionality by introducing a separate kernel driver module that handles overprovisioned memory device management independently from the core MMU and kernel. This driver module acts as an intermediary layer that manages the virtual memory capacity without requiring modifications to the underlying memory management unit or operating system kernel, thereby increasing virtual memory capacity while avoiding complex kernel modifications.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If error-correction and compression techniques are applied, then virtual memory capacity is increased, but access latency increases

Engineering Contradiction:
Improvevirtual memory capacityVSAvoidaccess latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-compressing data using inline compression techniques before data is written to the overprovisioned memory device. This pre-compression approach allows the memory device to store more data in less space, increasing virtual memory capacity. Additionally, error correction codes are pre-applied during data preparation, so that when data is read, the correction process is minimized, thereby reducing access latency while maintaining increased virtual memory capacity.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If more memory is allocated for error correction and compression, then reliability is improved, but effective memory capacity is reduced

Engineering Contradiction:
Improvedata reliabilityVSAvoideffective memory capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent utilizes parameter changes by dynamically adjusting the overprovisioning ratio, which represents the portion of physical memory allocated for error correction, compression overhead, and other management functions. By changing this parameter, the system can optimize the balance between reliability and effective memory capacity. The kernel driver module monitors system conditions and adjusts the overprovisioning ratio accordingly, allowing the system to maintain high reliability while maximizing effective memory capacity based on current workload and error rates.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10372606B2System and method for integrating overprovisioned memory devices
Publication Date: 2019.08.06 SAMSUNG ELECTRONICS CO LTD
  • US10372606B2 patent drawing
  • US10372606B2 patent drawing
  • US10372606B2 patent drawing

AI summary

A memory device includes a memory interface to a host computer and a memory overprovisioning logic configured to provide a virtual memory capacity to a host operating system (OS). A kernel driver module of the host OS is configured to manage the virtual memory capacity of the memory device provided by the memory overprovisioning logic of the memory device and provide a fast swap of anonymous pages to a frontswap space and file pages to a cleancache space of the memory device based on the virtual memory capacity of the memory device.