Memory System Firmware Loading Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory systems face challenges in efficiently managing firmware loading at startup, particularly in ensuring high reliability and reducing the need for multiplexing and error correction, while also minimizing the required storage area and block count in nonvolatile memory.
Innovation Solution
A memory system configuration with a nonvolatile memory and controller that utilizes separate areas for firmware storage, where the initial load area has lower reliability but allows multiplexing for error correction, and the logical and extended logical address areas have higher reliability, enabling error correction and wear leveling, thus reducing the need for multiplexing and optimizing storage requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If firmware is stored in a single area of nonvolatile memory, then storage structure is simple, but reliability and endurance are reduced due to lack of error correction and wear leveling
Solution Approach 1:
The nonvolatile memory is segmented into three distinct areas: initial load area for firmware storage, and two logical address areas for multiplexed firmware storage with error correction. This segmentation allows the system to achieve high reliability through distributed storage and error correction while maintaining simple firmware loading operations from the initial load area.
Solution Approach 2:
Different areas of the nonvolatile memory are assigned different functions and reliability characteristics. The initial load area provides simple, fast firmware loading, while the logical address areas provide redundant storage with error correction and wear leveling capabilities. Each area has optimized properties for its specific purpose.
2Reliability
If multiplexing is used for firmware storage with error correction, then firmware protection is improved, but storage area and block count requirements increase
Solution Approach 1:
The memory is divided into initial load area and logical address areas, with the latter providing multiplexed storage. This segmentation allows error correction and wear leveling to be applied only where needed, optimizing the balance between protection and storage efficiency.
Solution Approach 2:
The system changes the storage parameters by using separate areas with different reliability characteristics. The logical address areas use error correction codes and wear leveling algorithms to protect firmware, while the initial load area maintains simple storage for rapid loading, thus optimizing both protection and storage efficiency.
3Duration of action of stationary object
If firmware is stored in high reliability areas with error correction, then firmware endurance is improved, but loading speed and simplicity at startup are reduced
Solution Approach 1:
Firmware is pre-loaded into the initial load area from the logical address areas during system initialization or firmware update operations. This preliminary action ensures that the firmware is available in the fast-loading initial load area for subsequent rapid execution, while the logical address areas maintain redundant copies for endurance and error correction.
Solution Approach 2:
The segmented memory structure separates the fast-loading initial load area from the high-endurance logical address areas. This segmentation enables the system to achieve both rapid firmware loading from the initial load area and long-term firmware endurance through the protected logical address areas.
Data Source
AI summary
According to one embodiment, a memory system includes a nonvolatile memory, and a controller. The controller controls the nonvolatile memory. The nonvolatile memory includes a first area where specific software is capable of being stored, and a second area where the specific software is stored. The second area has higher reliability than the first area. The controller causes the specific software to be stored in the first area when receiving a command specifying the specific software, and executes loading of the specific software stored in the first area at startup of the controller.


