NAND Flash Controller Dynamic ECC Positioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

NAND flash memory cells experience degradation and program disturbance due to repeated high threshold voltage applications and significant threshold voltage differences between adjacent cells, leading to reduced lifespan and increased error rates.

Innovation Solution

A controller system that converts data patterns with significant threshold voltage differences into patterns with smaller differences, using an encoder to analyze and compress data sequences and an ECC shifter to dynamically adjust the position of error correction codes within a page based on write and erase cycles, thereby reducing level-C writes and minimizing memory cell degradation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a high threshold voltage is repeatedly applied to a memory cell to store data, then the data storage capability is improved, but the tunnel oxide film is degraded and the life of the cell is shortened

Engineering Contradiction:
Improvedata storage capabilityVSAvoidmemory cell lifespan
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting the threshold voltage levels based on the number of write operations. As the write count increases, the system transitions from using high threshold voltage (level-C) to lower threshold voltage (level-B), thereby reducing stress on the tunnel oxide film and extending memory cell lifespan while maintaining data storage functionality.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If there are great differences in threshold voltage between adjacent memory cells, then data can be stored with higher density, but the memory cells having low threshold voltage vary in threshold voltage causing program disturbance

Engineering Contradiction:
Improvedata storage densityVSAvoidprogram disturbance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements local quality by applying different threshold voltage levels to different regions of the memory array based on their write counts. Specifically, memory cells in blocks with higher write counts use lower threshold voltage (level-B) while cells in blocks with fewer writes use higher threshold voltage (level-C), thereby locally adapting to wear patterns and suppressing program disturbance in vulnerable areas.

Inventive Principle:
Principle #3Local quality

3Reliability

If error correction codes are increased to reduce read errors, then the reliability is improved, but the data area of the page is reduced

Engineering Contradiction:
Improveread error correctionVSAvoiddata area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent applies beforehand cushioning by proactively suppressing program disturbance through dynamic threshold voltage adjustment and ECC repositioning before errors accumulate. This preventive approach reduces the need for extensive error correction codes, thereby preserving more data area while maintaining reliability.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9594627B2Controller and control method
Publication Date: 2017.03.14 KIOXIA CORP
  • US9594627B2 patent drawing
  • US9594627B2 patent drawing
  • US9594627B2 patent drawing

AI summary

According to one embodiment, a controller controls a nonvolatile memory stores data page by page. The controller is configured to extract, from a first data sequence shorter than the data length of a page, a second data sequence shorter than the first data sequence, to refer to the difference between threshold voltages corresponding to two data included in the second data sequence, to convert the second data sequence into a third data sequence longer than the second data sequence, and to control the percentage of the length of an error correction code added to the third data sequence.