Non-Volatile Memory Voting Mechanism for Boot Time Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory systems require significant time and processing power to verify data integrity during boot processes due to the need to re-read entire code sets upon CRC mismatches, leading to increased boot times and software processing efforts.

Innovation Solution

Integration of a majority voter within the non-volatile memory that reads multiple copies of data in parallel to select an error-free data stream, reducing the need for re-reading entire code sets and simplifying the boot process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional error detection schemes re-read entire code sets upon CRC mismatches, then data integrity can be verified, but boot time increases significantly

Engineering Contradiction:
Improvedata integrity verificationVSAvoidboot time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the code set into multiple individual code words with separate CRC checks. Instead of re-reading the entire code set upon a CRC mismatch, the system only re-reads the specific corrupted code word, dramatically reducing the verification time while maintaining data integrity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by calculating and storing CRC values for each individual code word during the initial read. This allows the system to quickly identify which specific code word is corrupted without having to re-verify the entire code set, thereby reducing boot time

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional error detection schemes re-read entire code sets upon CRC mismatches, then data integrity can be verified, but processing power requirements increase

Engineering Contradiction:
Improvedata integrity verificationVSAvoidprocessing power
Core Design Contradiction:
ReliabilityVSPower

Solution Approach 1:

The patent segments the code set into multiple individual code words with separate CRC checks. This segmentation allows the processing unit to focus computational resources only on the specific corrupted code word rather than re-processing the entire code set, thereby reducing processing power requirements while maintaining verification reliability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by performing CRC verification on individual code words rather than the entire code set. When a mismatch is detected, only the affected code word is re-read and re-verified, avoiding the excessive processing power consumption of re-reading and re-verifying the complete code set

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If multiple copies of data are stored in non-volatile memory, then error-free data can be selected using voting mechanism, but device complexity increases

Engineering Contradiction:
Improveerror-free data selectionVSAvoidmemory structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses copying by storing multiple identical copies of the code set in the non-volatile memory. The voting mechanism compares these copies to identify and select the error-free code word. This approach enhances reliability through redundancy while keeping the implementation relatively simple by using identical copies rather than complex error correction codes

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20240012723A1High-reliability non-volatile memory using a voting mechanism
Publication Date: 2024.01.11 LODESTAR LICENSING GROUP LLC
  • US20240012723A1 patent drawing
  • US20240012723A1 patent drawing
  • US20240012723A1 patent drawing

AI summary

A memory system includes a processing device (e.g., a controller implemented using a CPU, FPGA, and/or logic circuitry) and memory regions (e.g., in a flash memory or other non-volatile memory) storing data. The processing device receives an access request from a host system that is requesting to read the stored data. In one approach, the memory system is configured to: receive, from the host system over a bus, a read command to access data associated with an address in a non-volatile memory; in response to receiving the read command, access, by the processing device, multiple copies of data stored in at least one memory region of the non-volatile memory; match, by the processing device, data from the copies with each other; select, based on matching data from the copies with each other, first data from a first copy of the copies; and provide, to the host system over the bus, the first data as output data.