Protected Flash Data Programming With Power-Loss Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory devices, particularly NAND flash devices, lack random access capabilities, necessitating serial access and requiring secure data programming that is vulnerable to sudden power loss, leading to potential data integrity issues.
Innovation Solution
A method and apparatus for programming and recovering protected data using parallel authentication and data operations, including generating intermediate calculation results and metadata to ensure secure data storage, with metadata and error correction mechanisms to handle sudden power off scenarios.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If authentication calculation operations are performed sequentially before data programming operations, then data security is ensured through proper authentication, but programming time and processing efficiency deteriorate
Solution Approach 1:
The patent performs preliminary authentication calculations on received protected data batches before initiating data programming operations. By completing authentication checks in advance, the system ensures data security is verified prior to programming, while the sequential structure prevents unauthorized data from being programmed. This resolves the contradiction by maintaining security requirements while organizing operations to optimize time management.
Solution Approach 2:
The patent divides protected data into multiple batches and processes each batch through authentication calculation operations separately before programming. This segmentation allows the system to handle authentication and programming as distinct, manageable stages, ensuring that each data portion is properly verified before being programmed into the flash module, thereby maintaining security without compromising overall programming efficiency.
2Productivity
If authentication operations are performed in parallel with data programming operations, then programming time is reduced through parallel processing, but data integrity may deteriorate due to sudden power loss during simultaneous operations
Solution Approach 1:
The patent implements beforehand cushioning by performing complete authentication calculation operations on all data batches before initiating any data programming operations. This preparatory authentication phase acts as a cushion that ensures data integrity is verified in advance, so that even if power loss occurs during the subsequent programming phase, only authenticated data is at risk, and the system can recover properly using the authentication results already obtained.
Solution Approach 2:
The patent maintains continuity of useful action by organizing the process into two continuous phases: first, continuous authentication calculation operations on all data batches; second, continuous data programming operations. This continuous structure ensures that authentication is completed without interruption before programming begins, maintaining data integrity while maximizing programming efficiency through uninterrupted operation sequences.
3Productivity
If protected data is programmed into flash module without proper authentication, then programming speed is improved, but data security and reliability deteriorate
Solution Approach 1:
The patent performs preliminary authentication verification on all protected data batches before initiating programming operations into the flash module. This preliminary action ensures that only authenticated, secure data is programmed, maintaining data security and reliability while allowing efficient programming of verified data without repeated security checks during the programming process.
Data Source
AI summary
The invention introduces a method for programming and recovering protected data. Protected data instructed by a data write command is received from a host side in multiple batches. After an encoding algorithm is used to generate an intermediate calculation result according to a first portion of the protected data, and an authentication key, multiple authentication calculation operations for remaining portions of the protected data, and multiple data programming operations for all portions of the protected data are arranged to enable the authentication calculation operations to be performed in parallel to the data programming operations. Each data programming operation is performed to program a corresponding portion of the protected data and a metadata associated with the corresponding portion of the protected data into a current block of a flash module. The metadata comprises information about whether the protected data has passed an authentication.


