Flash Memory Cache Management via Native Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory devices face limitations in physical storage capacity, as the virtual address space can become fully populated before the physical address space, preventing further data storage, and managing free space is challenging due to variable compressibility.

Innovation Solution

Implementing native compression in flash memory devices to expand the logical address space beyond physical block capacity, using a memory device client to monitor and manage free space by erasing data as needed to maintain free address fidelity, and employing periodic cache flushing to maintain storage capacity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If native compression is implemented to expand logical address space, then storage capacity is improved, but device complexity increases

Engineering Contradiction:
Improvestorage capacityVSAvoiddevice complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The flash memory device performs native compression autonomously without requiring external compression hardware or software. The device self-manages the compression process, monitoring its own free space and dynamically adjusting compression operations to maintain optimal storage capacity while avoiding the need for additional external components.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system dynamically changes compression parameters based on the current state of free space in the flash memory device. When free space becomes limited, the device adjusts compression ratios and targets specific data blocks for compression, allowing flexible optimization of storage capacity without requiring complex external control systems.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If periodic cache flushing is performed to maintain free space, then storage capacity is improved, but loss of information increases

Engineering Contradiction:
Improvefree spaceVSAvoiddata loss
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The system performs preliminary actions by proactively monitoring free space levels and initiating compression operations before the flash memory device becomes full. This preventive approach allows data to be compressed and space to be freed in advance, avoiding the need for urgent flushing operations that would cause data loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The flash memory device continuously monitors its free space status and uses this feedback to dynamically adjust compression operations. When free space drops below certain thresholds, the system intensifies compression efforts on specific data blocks, creating a closed-loop control system that maintains optimal free space without excessive data loss.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9798655B2Managing a cache on storage devices supporting compression
Publication Date: 2017.10.24 ORACLE INT CORP
  • US9798655B2 patent drawing
  • US9798655B2 patent drawing
  • US9798655B2 patent drawing

AI summary

Flash memory on a flash memory device is virtualized using compression that is native to the flash memory device. Through compression, the flash memory device is used to logically store more data in a virtual address space that is larger than the physical address space of the flash memory device. Physical storage capacity of a flash memory device may prevent further storage of data even when the virtual address space is not fully populated. Because compressibility may vary, the extent to which the virtual address space may be populated before physical storage capacity is reached varies. The approaches for virtual memory described herein rely on the memory device client to monitor when this point is reached. In addition, the memory device client is responsible for freeing space as needed to accommodate subsequent requests to store data in the flash memory.