Variable-Size Data Cache Architecture for NAND Flash Lifetime Extension

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The program/erase count in NAND type flash devices decreases due to technological progress, leading to reduced mean time between failures, and existing cache algorithms struggle to efficiently manage data writes, particularly with 'reverse write' and 'data overwrite' issues in flash memory, which limits the lifetime of these devices.

Innovation Solution

A data cache architecture with a buffer memory and memory controller, partitioning the data cache memory into large, middle, and small cache-size blocks, and a cache algorithm that determines the optimal block size for data writes based on sector thresholds and cache hit rates to minimize program/erase operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the cache size is increased to improve cache hit rate, then more cache memory cost is needed and more complex cache tag memory control hardware is needed

Engineering Contradiction:
Improvecache hit rateVSAvoidcache tag memory control hardware
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The cache memory is segmented into multiple cache sets, each containing multiple cache lines. This segmentation allows the cache to be organized in a set-associative structure, which balances between direct-mapped simplicity and fully-associative performance, reducing tag memory complexity while maintaining high hit rates

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cache architecture introduces multiple dimensions of organization: cache sets as the first dimension and cache lines within sets as the second dimension. This multi-dimensional structure enables efficient addressing and tag comparison, reducing the complexity of control hardware while improving cache hit rates

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Device complexity

If uniform cache partitioning is used for 32-bit CPU with 32-bit cache units, then the cache structure is simple, but the cache hit rate is limited by fixed block size

Engineering Contradiction:
Improvecache structureVSAvoidcache hit rate
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The cache architecture supports dynamic configuration of cache line sizes and associativity. The cache can be programmed to operate with different line sizes (e.g., 32 bytes, 64 bytes, 128 bytes) and associativity levels, allowing the system to optimize for different workload patterns and improve hit rates without increasing structural complexity

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The cache parameters such as line size, block size, and associativity can be changed through configuration registers or control signals. This allows the same physical cache structure to adapt to different access patterns and data sizes, improving cache hit rate without requiring multiple fixed-structure caches

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If flash memory blocks are erased and reprogrammed to handle reverse write operations, then reverse write issues are solved, but program/erase count increases reducing flash memory lifetime

Engineering Contradiction:
Improvereverse write capabilityVSAvoidflash memory lifetime
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

A software intermediary layer is introduced between the host and flash memory that intercepts write operations. This software layer buffers data in memory, reorders write operations to prevent reverse writes, and manages cache operations, thereby eliminating the need for frequent erase/program cycles while maintaining ease of operation

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by pre-allocating cache buffers and pre-processing write requests before they reach the flash memory. Data is cached and organized in advance, allowing write operations to be performed in the correct sequence without requiring erase cycles, thus preserving flash memory lifetime

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7814276B2Data cache architecture and cache algorithm used therein
Publication Date: 2010.10.12 SOLID STATE SYST
  • US7814276B2 patent drawing
  • US7814276B2 patent drawing
  • US7814276B2 patent drawing

AI summary

The present invention provides a data cache architecture interposed between a host and a flash memory, the data cache architecture comprising: a buffer memory, receiving data from the host; a memory controller, deploying the data in the buffer memory; and a data cache memory, controlled by the memory controller according to a cache algorithm. The data cache architecture and the cache algorithm used in the data cache architecture can be used to minimize the program/erase count of the NAND type flash device.