Flash Memory Module Programming Acceleration via Cache Copy-Back

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-level cell flash memory systems, the programming speed is bottlenecked by the host interface during most significant bit (MSB) programming and by the flash memory module during least significant bit (LSB) programming, leading to inefficiencies, especially in devices with limited internal volatile memory.

Innovation Solution

A method is introduced where data units are first level programmed to cache memory pages using faster MSB programming and then second level programmed to target memory pages using slower LSB programming, with a copy back operation, optimizing the allocation of cache and target pages to balance caching and copy-back processes, thereby accelerating data programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If MSB programming is performed, then programming speed is improved, but host interface becomes a bottleneck

Engineering Contradiction:
Improveprogramming speedVSAvoidhost interface bottleneck
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary buffer memory between the host interface and the flash memory module. This buffer temporarily stores data units during MSB programming, decoupling the host interface from the programming process and eliminating it as a bottleneck. The buffer acts as a mediator that allows MSB programming to proceed at high speed without being constrained by host interface limitations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If LSB programming is performed, then data is programmed to target pages, but flash memory module becomes a bottleneck

Engineering Contradiction:
Improvedata programming accuracyVSAvoidprogramming throughput
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent segments the programming process into two distinct phases: MSB programming phase and LSB programming phase. During MSB programming, data units are programmed to cache memory pages with high speed. After MSB programming completes, a copy-back operation retrieves the data and performs LSB programming to target pages. This segmentation allows each phase to optimize for its specific requirements, improving overall productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary MSB programming to cache memory pages before performing the final LSB programming to target pages. This preliminary action establishes data in a temporary location where it can be processed at higher speed, and then copied to the final target pages when ready, optimizing the overall programming workflow.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If internal volatile memory is not big enough, then data buffering capability is limited, but programming acceleration is needed

Engineering Contradiction:
Improveprogramming accelerationVSAvoidinternal volatile memory capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent moves the buffering function from the traditional internal volatile memory dimension to the flash memory module itself by designating cache memory pages within the flash module. This dimensional shift allows the system to utilize the flash memory's capacity for buffering purposes, effectively increasing available buffer space without requiring larger volatile memory. The cache memory pages serve as a secondary buffering dimension that complements the limited volatile memory.

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

Data Source

PatentUS9972393B1Accelerating programming of a flash memory module
Publication Date: 2018.05.15 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US9972393B1 patent drawing
  • US9972393B1 patent drawing
  • US9972393B1 patent drawing

AI summary

According to an embodiment of the invention there is provided a method for accelerating programming of data, the method may include receiving multiple input data units that were sent from a host computer; wherein the input data units may include first and second input data units; first level programming the first input data units to cache memory pages and first level programming the second input data units to first level target memory pages; and applying a copy back operation that comprises retrieving the first input data units from the cache memory pages and second level programming the first input data units to second level target memory pages; wherein any target page out of the first level target pages and the second level target pages differs from a cache memory page; and wherein the first level programming is faster than the second level programming.