Bloom Filter Multipass Programming in Flash Memory
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


