Cache Program Execute Technique for ECC NAND Flash Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

NAND flash memory devices face inefficiencies in programming performance due to time-intensive page programming operations, which hinder fast read and program capabilities, especially when internal ECC is enabled and bad block management is required.

Innovation Solution

Implementing a cache program execute technique that utilizes a cache register and a data register to perform error correction coding in parallel with page programming, allowing for overlapping operations and efficient resource utilization during programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional sequential programming operations are used with ECC processing, then programming accuracy is maintained, but programming speed deteriorates due to time-intensive page programming operations

Engineering Contradiction:
Improveprogramming speedVSAvoidprogramming time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent loads multiple pages of program data into the data buffer in advance before the actual programming operation begins. This preliminary loading allows the programming engine to process pages sequentially while data is already prepared, eliminating waiting time and enabling continuous programming operations without interruption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a continuous programming pipeline where the programming engine processes one page while the data buffer simultaneously loads the next page. This overlapping of operations ensures that the programming engine is never idle, maintaining continuous useful action and maximizing programming throughput.

Inventive Principle:
Principle #20Continuity of useful action

2Reliability

If ECC processing is performed on each page before programming, then data integrity is ensured, but overall programming throughput deteriorates due to sequential processing requirements

Engineering Contradiction:
Improvedata integrityVSAvoidprogramming throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the programming task into independent page segments that can be processed individually by the programming engine. Each page is loaded into the data buffer, programmed, and verified independently, allowing the system to maintain data integrity for each page while enabling parallel preparation of subsequent pages to improve overall throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a data buffer as an intermediary structure between the host interface and the programming engine. This buffer decouples the data loading process from the programming process, allowing data to be prepared in advance while the programming engine works on previous data, thereby eliminating bottlenecks and improving throughput without compromising data integrity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If the data buffer is used for loading program data, then data storage capacity is sufficient, but the buffer becomes a bottleneck when programming operations are time-intensive

Engineering Contradiction:
Improvedata buffer capacityVSAvoidprogramming throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent utilizes the data buffer to store multiple pages of program data in advance before programming begins. By pre-loading data into the buffer's available capacity, the system prepares sufficient data to keep the programming engine continuously occupied, transforming the buffer from a potential bottleneck into a productivity-enhancing resource.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extends the data buffer's functionality beyond simple data storage by implementing a multi-page buffer structure that can hold and manage multiple pages simultaneously. This dimensional expansion of buffer usage allows parallel preparation of multiple pages, converting the buffer into a throughput-enhancing component rather than a sequential bottleneck.

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

Data Source

PatentUS9971647B2Apparatus and method for programming ECC-enabled NAND flash memory
Publication Date: 2018.05.15 WINBOND ELECTRONICS CORP
  • US9971647B2 patent drawing
  • US9971647B2 patent drawing
  • US9971647B2 patent drawing

AI summary

The NAND flash memory array in a memory device may be programmed using a cache program execute technique for fast performance. The memory device includes a page buffer, which may be implemented as a cache register and a data register. Program data may be loaded to the cache register, where it may be processed by an error correction code (“ECC”) circuit. Thereafter, the ECC processed data in the cache register may be replicated to the data register and used to program the NAND flash memory array. Advantageously, immediately after the ECC processed data in the cache register is replicated to the data register, the cache register may be made available for other operations. Of particular benefit is that a second page of program data may be loaded into the cache register and ECC processed while the first page of program data is being programmed into the NAND flash memory array.