Flash Memory Programming via Broadcast Data Transfer
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Reliability
If the memory controller holds initial program data for potential recovery, then program reliability is improved, but memory space availability deteriorates
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.
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.
2Reliability
If the memory controller waits for slow devices to complete programming, then programming completeness is improved, but throughput deteriorates
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.
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.
3Productivity
If batch programming of multiple devices is implemented, then productivity is improved, but device complexity deteriorates
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.
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.
Data Source
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.


