Nonvolatile Memory Sector Protection Using Dual-State Codes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Nonvolatile memory devices face limitations in data protection due to the limited endurance of protection bits and the time-consuming nature of program/erase operations, making it difficult to frequently switch between protected and unprotected states while maintaining data integrity.
Innovation Solution
The implementation of nonvolatile and volatile protection codes, along with protection lock codes, to dynamically control sector protection states, allowing for flexible and reliable data protection by blocking or allowing modifications based on code states, and ensuring protection settings are maintained across power cycles.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If nonvolatile protection bits are used to store protection state, then data protection reliability is improved, but the limited endurance and long program/erase time worsen the ability to frequently switch protection states
Solution Approach 1:
The protection mechanism is segmented into two distinct components: nonvolatile protection bits stored in flash memory for persistent protection state, and volatile protection registers for dynamic control. This segmentation allows each component to fulfill its optimal function - the nonvolatile bits ensure reliability across power cycles while the volatile registers enable fast switching without wear concerns
Solution Approach 2:
Volatile protection registers act as an intermediary between the software control logic and the nonvolatile protection bits. The intermediary absorbs the wear and switching frequency demands, allowing the nonvolatile bits to remain stable and reliable while the volatile registers handle the dynamic switching operations
2Adaptability or versatility
If nonvolatile protection bits are programmed frequently, then protection state flexibility is improved, but memory cell wear increases due to endurance limits
Solution Approach 1:
The system segments protection functionality into nonvolatile persistent storage and volatile dynamic control, allowing flexibility to be achieved through the volatile component while the nonvolatile component preserves memory cell endurance by only updating when necessary
Solution Approach 2:
The volatile protection registers are pre-loaded with protection state values from the nonvolatile bits during initialization. This preliminary action allows subsequent switching operations to occur in the volatile domain without repeatedly programming the nonvolatile memory cells, thus preserving endurance
3Stability of the object's composition
If program/erase operations are performed for protection bit changes, then protection state persistence is improved, but operating time increases significantly compared to volatile memory writes
Solution Approach 1:
The protection system is divided into persistent nonvolatile storage and fast volatile control, allowing the system to achieve both persistence and speed by operating in the volatile domain for frequent changes while using nonvolatile storage only for permanent state changes
Solution Approach 2:
The system dynamically selects between volatile and nonvolatile protection mechanisms based on the required persistence. For temporary or frequent protection state changes, the volatile registers are used for immediate effect. For permanent protection requirements, the nonvolatile bits are programmed, ensuring persistence without the time penalty for every operation
Data Source
AI summary
Methods for protecting data on an integrated circuit including a memory are described. One method includes storing nonvolatile protection codes on the integrated circuit. The nonvolatile protection codes have a first value indicating a protected state or a second value indicating an unprotected state for respective sectors in a plurality of sectors of the memory. The method includes storing volatile protection codes on the integrated circuit. The volatile protection codes have a first value indicating a protected state or a second value indicating an unprotected state for respective sectors in the plurality of sectors. The method includes blocking modification in a particular sector using circuitry on the integrated circuit when the volatile protection code for the particular sector has the first value, else allowing modification in the particular sector, and setting the volatile protection codes to values of the nonvolatile protection codes in an initialization procedure.


