Bitwise Non-Volatile Memory Data Management for Programming Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Bitwise programmable resistive memories, such as PCM, OxRAM, and MRAM, face challenges in programming time and energy consumption due to the need to modify multiple bits simultaneously, which is inefficient for large-scale data changes like firmware updates or security breaches, and existing solutions increase costs and device size.

Innovation Solution

A method for data management in bitwise programmable non-volatile memory that involves sensing the existing data, computing quantifications for both the new data and its complementary inversion, and programming the faster and more energy-efficient option, which can include inverting all bits outside the memory location if necessary, using set and reset pulses with proportional calculations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If bitwise programming is used to modify multiple bits simultaneously, then programming flexibility is improved, but programming time increases

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidprogramming time
Core Design Contradiction:
Adaptability or versatilityVSDuration of action of moving object

Solution Approach 1:

The patent applies data inversion by computing both the original data and its complement, then selecting which version to program based on which requires fewer bit changes. This inversion approach allows the system to exploit the bitwise programmability advantage while minimizing programming time by choosing the more efficient representation.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent changes the parameter being programmed by selecting between original data and inverted data based on the number of bit changes required. This parameter selection strategy optimizes programming time while maintaining programming flexibility through bitwise operations.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If available current is increased to program more bits at once, then programming speed is improved, but device size increases

Engineering Contradiction:
Improveprogramming speedVSAvoiddevice size
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent segments the programming task into two possible approaches: programming original data or programming inverted data. By dividing the problem this way, the system can select the segment requiring fewer operations, achieving faster programming without increasing current capacity or device size.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs partial action by computing quantifications for only the necessary programming operations. Instead of programming all bits regardless of necessity, it calculates which bits need changing and chooses the approach (original or inverted) that minimizes the number of programming operations required.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If parallelism is increased by dividing memory into sub-arrays, then programming speed is improved, but peripheral area increases

Engineering Contradiction:
Improveprogramming speedVSAvoidperipheral area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent uses data inversion as an alternative to physical parallelism. Instead of dividing the memory into multiple sub-arrays that require additional peripheral circuitry, it inverts the data logically and selects the representation that requires fewer programming operations, achieving speedup without increasing peripheral area.

Inventive Principle:
Principle #13The other way round (Inversion)

4Reliability

If bitwise programming operations are performed on all bits, then data integrity is improved, but energy consumption increases

Engineering Contradiction:
Improvedata integrityVSAvoidenergy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent performs partial action by computing quantifications to determine exactly which bits need programming and choosing the approach that minimizes the number of programming operations. This reduces energy consumption by avoiding unnecessary programming operations while maintaining data integrity through selective programming of only the required bits.

Inventive Principle:
Principle #16Partial or excessive action

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach reduces programming duration by 50% to 100% and energy consumption while maintaining competitiveness by avoiding increased costs and device size, with specific benefits in worst-case and average-case scenarios.

Implementation Method 1

a sensing step comprising sensing former data stored in the memory location

Methodology Applied
Scientific EffectElectrical sensing: Electrical Resistance

Implementation Method 2

bitwise programming the bits of the complementary inversion of the new data respectively different than the bits of the former data

Methodology Applied
Scientific EffectResistive switching: Electrical Resistance

Data Source

PatentEP4080510B1Method of data management for a bitwise programmable non-volatile memory, and corresponding device
Publication Date: 2024.12.25 STMICROELECTRONICS (GRENOBLE 2) SAS
  • EP4080510B1 patent drawingFigure 1~2
  • EP4080510B1 patent drawingFigure 3
  • EP4080510B1 patent drawingFigure 4

AI summary

In the method of data management (300) for a bitwise programmable non-volatile memory, storing new data (NewDat) at a memory location (Loc) of a memory word comprises: - a sensing step (302) sensing the former data (FormDat) stored in the memory location; - computing (303) first and second quantifications (Ql, Q2) of the bitwise programming operations corresponding to the bits of the new data (NewDat), and of a complementary inversion of the new data (Compl.NewDat), that are respectively different than the bits of the former data (FormDat), - a programming step (306) comprising, if the first quantification (Ql) is strictly higher than the second quantification (Q2), bitwise programming the bits of the complementary inversion (305) of the new data (Compl.NewDat) respectively different than the bits of the former data (FormDat), and programming an inversion flag (InvFlg) at a flagged value.