Bitwise Non-Volatile Memory Data Management for Programming Speed
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Adaptability or versatility
If bitwise programming is used to modify multiple bits simultaneously, then programming flexibility is improved, but programming time increases
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.
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.
2Productivity
If available current is increased to program more bits at once, then programming speed is improved, but device size increases
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.
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.
3Productivity
If parallelism is increased by dividing memory into sub-arrays, then programming speed is improved, but peripheral area increases
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.
4Reliability
If bitwise programming operations are performed on all bits, then data integrity is improved, but energy consumption increases
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.
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
Implementation Method 2
bitwise programming the bits of the complementary inversion of the new data respectively different than the bits of the former data
Data Source
Figure 1~2
Figure 3
Figure 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.