ECC Pointer Encoding for OTP-Based Multiple-Programmable Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multiple-time programmable (MTP) memory technologies face challenges in efficiently reprogramming and error correction due to the limitations of one-time programmable (OTP) memory modules, where bit changes from 1 to 0 are not feasible, affecting data integrity and readability.

Innovation Solution

The implementation of virtual MTP memory blocks with OTP memory banks and error correction codes, such as repetition codes and Hamming codes, that allow only bit changes from 0 to 1 or 1 to 0, ensuring correct pointer updates and data storage without reprogramming existing OTP blocks when possible, and using a memory address table to manage associations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If OTP memory is used to form MTP memory by providing multiple OTP memory banks, then the memory can be reprogrammed multiple times, but the complexity of managing multiple banks and pointers increases

Engineering Contradiction:
ImprovereprogrammabilityVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The OTP memory is divided into multiple banks (first OTP memory bank, second OTP memory bank, etc.), each capable of storing data independently. This segmentation allows the system to switch between different banks to achieve multiple programming cycles while maintaining the simplicity of individual OTP block management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Pointer information is introduced as an intermediary element that manages the association between virtual MTP memory blocks and physical OTP memory blocks. The pointer stores the address of the currently active OTP bank, enabling seamless switching between banks without requiring complex management logic in the control circuitry.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If pointers are updated to associate virtual MTP memory blocks with new OTP memory blocks, then reprogramming is enabled, but bit changes from 1 to 0 in pointers may not be feasible in OTP memory

Engineering Contradiction:
Improvereprogramming capabilityVSAvoidpointer update reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The pointer encoding scheme is specifically designed to change only from 0 to 1 when updating, never requiring 1 to 0 transitions. This is achieved by selecting pointer values and encoding schemes that monotonically increase, ensuring compatibility with OTP memory's unidirectional programming capability while maintaining reliable pointer updates for bank switching.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If error correction codes are applied to pointer data, then data integrity is improved, but the storage space and programming complexity increase

Engineering Contradiction:
Improvedata integrityVSAvoidencoding complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Error correction codes are pre-calculated and stored alongside the pointer data in the same OTP memory block. The ECC for pointer data is generated in advance based on the pointer value, and both the pointer and its ECC are programmed together into the memory block during the same programming operation, eliminating the need for complex real-time encoding during operation.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If multiple OTP memory blocks are reserved for each virtual MTP memory block, then reprogramming flexibility is improved, but the memory utilization efficiency decreases

Engineering Contradiction:
Improvereprogramming flexibilityVSAvoidmemory utilization efficiency
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system dynamically selects which OTP memory block to use for each virtual MTP memory block based on the current pointer value. Instead of statically allocating multiple physical blocks to each virtual block, the pointer enables dynamic switching between different physical blocks, providing reprogramming flexibility while maintaining high memory utilization as each physical block can serve different virtual blocks at different times.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11854588B2Multiple time programmable memory using one time programmable memory and error correction codes
Publication Date: 2023.12.26 MURATA MFG CO LTD
  • US11854588B2 patent drawing
  • US11854588B2 patent drawing

AI summary

The present invention relates to the field of digital memory, and in particular to a multiple-time programmable (MTP) memory employing error correction codes (ECC), the MTP memory being made up of one-time programmable (OTP) memory modules. Pointers to the memory address of currently in-use OTP memory blocks in use for each virtual MTP memory block are stored in OTP memory with an error correcting code. The pointers encode the memory addresses according to a scheme that ensure that only bit changes in a single direction are required in both the pointer data and the error correction code when the memory address is incremented.