Bloom Filter Multipass Programming in Flash Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Implementing Bloom filters in memory systems using address-targeted read and write methods is inefficient, especially for large data sets, as it requires excessive data transfer between the host and memory, and existing non-volatile data storage systems are not optimized for multipass programming.

Innovation Solution

Integrating Bloom filter functionality into non-volatile data storage systems, specifically using NAND flash storage devices, which allows for multipass programming by generating and setting bit positions in a Bloom filter using distinct hash functions and managing usage information to optimize memory operations, reducing the need for frequent data transfers and extending the number of operations before erasure is required.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If address-targeted read and write methods are used to access memory for Bloom filters, then the memory can be accessed in a simple manner, but excessive data transfer between host and memory occurs and performance deteriorates for large data sets

Engineering Contradiction:
Improvememory access simplicityVSAvoidperformance for large data sets
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent merges the Bloom filter data structure with the flash memory storage system by integrating the filter array directly into the memory device. This allows the host to access Bloom filter data without excessive data transfers, as the filter is stored within the memory itself rather than requiring separate host memory allocation and access paths.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a memory management system as an intermediary between the host and the flash memory. This intermediary handles the complex operations of multipass programming, usage information tracking, and data structure maintenance, allowing simple address-targeted access from the host while managing the complexity of efficient storage operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If conventional non-volatile data storage systems are used, then data can be stored without power, but the systems are not optimized for multipass programming and require frequent erasure operations

Engineering Contradiction:
Improvenon-volatile data retentionVSAvoidnumber of operations before erasure
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary action by tracking usage information for each portion of the flash memory and proactively managing the programming passes. The system monitors how many times each memory portion has been programmed and uses this information to optimize subsequent write operations, extending the number of operations before erasure is required.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic management of the flash memory portions based on their usage history. The memory management system adapts its behavior based on the number of programming passes each portion has undergone, dynamically selecting which portions to program next and when erasure operations are needed, thereby optimizing the overall productivity of the storage system.

Inventive Principle:
Principle #15Dynamics

3Productivity

If Bloom filter functionality is integrated into non-volatile data storage systems, then data transfers are reduced and operations before erasure are extended, but the system complexity increases

Engineering Contradiction:
Improveefficiency in handling large data setsVSAvoidsystem integration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent makes the flash memory system multi-functional by enabling it to serve both as conventional non-volatile storage and as the underlying storage medium for Bloom filters. The same flash memory device performs multiple functions: storing filter bits, maintaining usage information, and providing the basis for efficient data structure operations, thereby reducing the need for separate dedicated Bloom filter hardware.

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

Solution Approach 2:

The memory management system performs self-service by automatically tracking usage information, managing programming passes, and optimizing access patterns without requiring complex external control. The system monitors its own state and adapts its operations to extend the number of programming cycles before erasure, reducing the burden on the host system.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9043517B1Multipass programming in buffers implemented in non-volatile data storage systems
Publication Date: 2015.05.26 SANDISK TECHNOLOGIES LLC
  • US9043517B1 patent drawing
  • US9043517B1 patent drawing
  • US9043517B1 patent drawing

AI summary

The various implementations described herein include systems, methods and/or devices used to enable multipass programming in buffers implemented in non-volatile data storage systems (e.g., using one or more flash memory devices). In one aspect, a portion of memory (e.g., a page in a block of a flash memory device) may be programmed many (e.g., 1000) times before an erase is required. Some embodiments include systems, methods and/or devices to integrate Bloom filter functionality in a non-volatile data storage system, where a portion of memory storing one or more bits of a Bloom filter array may be programmed many (e.g., 1000) times before the contents of the portion of memory need to be moved to an unused location in the memory.