Solid State Storage Device Firmware Loading via Memory Zone Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional solid state storage devices rely on read-only memory for firmware programs, which are costly and cannot be modified, leading to inefficiencies and increased costs, and suffer from data collapse issues due to the degradation of non-volatile memory over time.
Innovation Solution
The solution involves storing firmware programs in non-volatile memory, using a memory cell array with multiple zones where binary codes are repeatedly stored in pairs, with one's complement in separate portions of each page, allowing for accurate loading even in the presence of data collapse problems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If read-only memory is used to store firmware programs, then program loading reliability is improved, but device cost increases
Solution Approach 1:
The patent combines the firmware storage function with the non-volatile memory by dividing it into multiple zones (first zone for boot code loader, second zone for firmware program, third zone for data). This merging eliminates the need for separate read-only memory, reducing device cost while maintaining reliability through the multi-zone architecture that preserves critical code even when memory degrades.
Solution Approach 2:
The non-volatile memory is segmented into multiple functional zones: the first storage zone contains the boot code loader, the second storage zone contains the firmware program, and the third storage zone stores data. This segmentation allows the system to maintain reliable program loading by separating critical boot code from general firmware and data, enabling the controller to reliably execute boot code even as other portions of memory degrade.
2Ease of manufacture
If non-volatile memory is used to store firmware programs, then device cost is reduced, but data collapse issues occur due to memory degradation
Solution Approach 1:
The patent applies beforehand cushioning by creating redundant copies of critical data in the non-volatile memory's first storage zone. The boot code loader is stored in a manner that provides error tolerance, cushioning against future memory degradation and data collapse. This preventive measure ensures that even as memory ages and degrades, the critical boot code remains intact and reliable.
Solution Approach 2:
The patent changes the storage parameters by using different storage strategies for different zones. The first storage zone uses a parameter configuration that prioritizes reliability and error tolerance for the boot code loader, while the second and third zones use parameters optimized for firmware and data storage. This parameter differentiation allows cost-effective non-volatile memory to maintain data integrity despite degradation over time.
3Reliability
If read-only memory is used for firmware storage, then program storage reliability is improved, but memory capacity is limited
Solution Approach 1:
The non-volatile memory is designed with multi-functionality, serving multiple purposes: the first storage zone stores the boot code loader, the second storage zone stores the firmware program, and the third storage zone stores data. This universal memory structure replaces the specialized read-only memory while providing greater total capacity across all zones, maintaining reliability for critical functions while expanding overall storage capability.
Data Source
AI summary
A solid state storage device includes a control circuit and a non-volatile memory. The control circuit includes a first storage zone and a second storage zone. A boot code loader is stored in the first storage zone. The non-volatile memory includes a memory cell array. The memory cell array includes a third storage zone and a fourth storage zone. A specified program is stored in the third storage zone. The third storage zone contains a first block. A first page of the first block is divided into a first portion and a second portion. A first binary code of the specified program is repeatedly stored in plural bytes of the first portion of the first page. The one's complement of the first binary code is repeatedly stored in plural bytes of the second portion of the first page.


