Flash Memory Programming via Broadcast Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memories require a long programming time for verifying program status, which can lead to delays and reduced throughput in memory controllers due to the need to hold initial program data for potential recovery, and varying programming times across devices can further limit efficiency.

Innovation Solution

A device programming system utilizing a target programmer with a programming bus that allows for data broadcasting, where a host server sends a broadcast message containing logical blocks of a data image to multiple target programmers, enabling concurrent programming and out-of-order data transfer, with unsubscribe messages managing resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the memory controller holds initial program data for potential recovery, then program reliability is improved, but memory space availability deteriorates

Engineering Contradiction:
Improveprogram reliabilityVSAvoidmemory space availability
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the program data storage function from the memory controller's internal memory to an external data store. The memory controller only retains minimal data for verification purposes while the bulk of program data is stored externally, freeing up memory space while maintaining reliability through the ability to re-transmit data if needed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a data store as an intermediary between the memory controller and the flash memory devices. This intermediary stores program data and allows the memory controller to retrieve it as needed, eliminating the need for the controller to continuously hold large amounts of data in its limited memory while maintaining program reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the memory controller waits for slow devices to complete programming, then programming completeness is improved, but throughput deteriorates

Engineering Contradiction:
Improveprogramming completenessVSAvoidthroughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary action by having the memory controller transmit program data to multiple flash memory devices simultaneously before verification is complete. The controller sends data to fast devices immediately while slower devices are still programming, allowing fast devices to begin verification early and enabling the controller to start the next programming cycle without waiting for all devices to complete.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic behavior to the programming process by allowing devices to complete programming at different rates. The system dynamically manages multiple programming operations concurrently, with the memory controller adapting its workflow to handle varying programming speeds without requiring all devices to synchronize, thus improving throughput while maintaining completeness.

Inventive Principle:
Principle #15Dynamics

3Productivity

If batch programming of multiple devices is implemented, then productivity is improved, but device complexity deteriorates

Engineering Contradiction:
Improveprogramming throughputVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses a data store as an intermediary to simplify the batch programming system. The data store centralizes program data storage and management, allowing the memory controller to efficiently manage multiple devices without complex internal memory management. This intermediary absorbs the complexity of coordinating multiple programming operations, making the overall system more manageable despite handling batches of devices.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the programming system into distinct functional components: the memory controller for coordination, multiple flash memory devices for parallel programming, and a data store for centralized data management. This segmentation allows each component to perform its function independently, simplifying the overall system architecture while enabling batch programming of multiple devices.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9720681B2Device programming system with data broadcast and method of operation thereof
Publication Date: 2017.08.01 DATA I O CORP
  • US9720681B2 patent drawing
  • US9720681B2 patent drawing
  • US9720681B2 patent drawing

AI summary

A method of operation of a device programming system includes: providing a target programmer, having a programming bus; coupling an electronic device, having a non-volatile memory, to the target programmer by the programming bus; and programming a data image into the non-volatile memory by the target programmer includes: subscribing to a broadcast message, receiving a logical block, of the data image, by the broadcast message for programming the non-volatile memory, and sending an unsubscribe message after receiving the logical blocks of the data image from the broadcast message.