Flash Memory Emulation via Multi-Packet Line Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory, while capable of on-chip integration, faces challenges in emulating memory storage similar to EEPROM due to its inability to overwrite individual data values, leading to inefficiencies and increased surface area, power consumption, and cost.

Innovation Solution

A method and system for writing to flash memory that involves performing multiple write operations to a single line of flash memory, allowing for the storage of multiple data packets and their associated error correction codes, thereby optimizing storage efficiency and granularity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If flash memory is used to implement on-chip memory storage, then integration is achieved and power consumption is reduced, but the inability to overwrite individual data values leads to inefficiency and increased complexity

Engineering Contradiction:
Improveon-chip integrationVSAvoidmemory management complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The flash memory line is segmented into multiple data packets, each with its own error correction code. This allows the system to treat each packet as an independent storage unit, enabling selective overwriting of individual packets without affecting others, thus reducing memory management complexity while maintaining on-chip integration

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A controller is introduced as an intermediary between the host and flash memory. The controller manages the complex operations of writing multiple data packets to a single line, handling error correction codes, and coordinating read/write operations, thereby abstracting the complexity from the overall system while enabling efficient on-chip memory emulation

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If multiple data packets are written to a single flash memory line, then storage efficiency is improved and waste space is reduced, but multiple write operations increase operation time

Engineering Contradiction:
Improvestorage efficiencyVSAvoidwrite operation time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

Error correction codes are calculated and prepared in advance for each data packet before the actual write operation. This preliminary action allows for faster write operations since the error correction data is already ready, and enables parallel preparation of multiple packets that will be written to the same line

Inventive Principle:
Principle #10Preliminary action

3Reliability

If error correction codes are stored for each data packet, then data reliability is improved, but storage space is consumed

Engineering Contradiction:
Improvedata integrityVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Each data packet is assigned its own dedicated error correction code, creating local quality assurance for each packet. This approach ensures that errors in one packet do not affect others and allows for selective correction, optimizing the balance between reliability and storage efficiency by applying error correction only where needed

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12306714B2Data memory emulation in flash memory
Publication Date: 2025.05.20 STMICROELECTRONICS (ALPS) SAS
  • US12306714B2 patent drawing
  • US12306714B2 patent drawing
  • US12306714B2 patent drawing

AI summary

In accordance with an embodiment, a method includes: performing a first write operation comprising writing a first data packet to a first portion of a first line of a flash memory; and performing a second write operation comprising writing a second data packet to a second portion of the first line of the flash memory, wherein the first line comprises the first data packet and the second data packet after performing the first write operation and the second write operation.