Non-Volatile Memory Cache Flushing via Pre-Reserved Block Map

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for cache flushing in non-volatile memory are slow due to the need to search for and erase free memory blocks, which can take considerable time, especially during power loss scenarios.

Innovation Solution

Implementing a flush cache map that maintains a list of reserved free memory blocks, allowing cache blocks to be written directly to these blocks without the need for search operations, thereby reducing the time required for cache flushing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the system searches for free memory blocks and erases old data in non-volatile memory during cache flushing, then the cache memory can be cleared, but the process takes considerable time

Engineering Contradiction:
Improvecache flushing completionVSAvoidcache flushing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent maintains a flush cache map that pre-identifies and reserves free memory blocks in non-volatile memory before cache flushing is needed. When a cache flush command is received, the system can immediately write cache blocks to the pre-identified free blocks without performing search or erase operations, thus resolving the time delay contradiction

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The flush cache map serves as an intermediary data structure that stores the mapping between cache blocks and reserved free memory blocks in non-volatile memory. This intermediary eliminates the need for direct search and erase operations during cache flushing, enabling immediate data transfer while maintaining reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the system performs search and erase operations for each cache block during flush, then all cache data is written to non-volatile memory, but the process is slow

Engineering Contradiction:
Improvedata transfer speedVSAvoidflush operation duration
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

Free memory blocks are pre-identified and reserved in the non-volatile memory before cache flushing operations are needed. The flush cache map is maintained to track these reserved blocks, enabling immediate high-speed data transfer when flushing is required without performing time-consuming search and erase operations

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously maintains the flush cache map and reserves free memory blocks in advance, ensuring that the useful action of data transfer can proceed continuously at high speed without interruption for search or erase operations, thereby improving productivity while reducing time loss

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8285940B2Method and apparatus for high speed cache flushing in a non-volatile memory
Publication Date: 2012.10.09 CADENCE DESIGN SYST INC
  • US8285940B2 patent drawing
  • US8285940B2 patent drawing
  • US8285940B2 patent drawing

AI summary

An invention is provided for performing flush cache in a non-volatile memory. The invention includes maintaining a plurality of free memory blocks within a non-volatile memory. When a flush cache command is issued, a flush cache map is examined to obtain a memory address of a memory block in the plurality of free memory blocks within the non-volatile memory. The flush cache map includes a plurality of entries, each entry indicating a memory block of the plurality of free memory blocks. Then, a cache block is written to a memory block at the obtained memory address within the non-volatile memory. In this manner, when a flush cache command is received, the flush cache map allows cache blocks to be written to free memory blocks in the non-volatile memory without requiring a non-volatile memory search for free blocks or requiring erasing of memory blocks storing old data.