Non-Volatile Memory Boot Code Fixed Location

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory data storage devices face inefficiencies in waking up from sleep mode due to time-consuming searches for boot code, especially when physical space allocation varies across different memory devices.

Innovation Solution

A data storage device architecture that loads boot code from non-volatile memory into a volatile memory's always-on area using a script, allowing for efficient access and execution without sequential searching, optimizing storage space and reducing wake-up time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the controller performs a time-consuming search of the non-volatile memory to get the boot code, then the boot code can be located despite varying physical space allocation, but the device wake-up time is significantly increased

Engineering Contradiction:
Improveboot code location adaptabilityVSAvoiddevice wake-up time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-storing the boot code at a fixed, predetermined location in the non-volatile memory during the manufacturing process. This eliminates the need for time-consuming searches during device wake-up, as the controller can directly access the boot code from the known fixed location. The physical space allocation variations across different memory devices are resolved by establishing this universal fixed location convention during manufacturing.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the physical space of non-volatile memory is dynamically allocated for data storage to accommodate wear leveling, then storage efficiency is improved, but the location of boot code varies across different devices requiring time-consuming searches

Engineering Contradiction:
Improvestorage efficiencyVSAvoidboot code search time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies segmentation by dividing the non-volatile memory into two distinct segments: a fixed reserved area for boot code storage and a dynamic data storage area for wear-leveling operations. The fixed reserved area maintains a predetermined location that never changes, while the dynamic data storage area can be freely allocated and reallocated for wear leveling. This segmentation allows both boot code accessibility and storage efficiency to coexist without interference.

Inventive Principle:
Principle #1Segmentation

3Speed

If the always-on area of volatile memory is used to store boot code, then access speed is improved, but the occupancy of the always-on area increases

Engineering Contradiction:
Improveboot code access speedVSAvoidalways-on area occupancy
Core Design Contradiction:
SpeedVSArea of stationary object

Solution Approach 1:

The patent applies the taking out principle by extracting the boot code from the always-on area of volatile memory and relocating it to a fixed location in the non-volatile memory. The always-on area is reserved for critical runtime data that must persist during sleep mode, while the boot code is stored separately in non-volatile memory at a predetermined location. This extraction eliminates boot code from occupying volatile memory space, maintaining fast access speeds while preserving always-on area capacity for other essential functions.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11086636B2Data storage device and method for operating non-volatile memory
Publication Date: 2021.08.10 SILICON MOTION INC
  • US11086636B2 patent drawing
  • US11086636B2 patent drawing
  • US11086636B2 patent drawing

AI summary

A data storage device waking up from a sleep mode rapidly is disclosed. The data storage device uses a controller to operate a non-volatile memory. The controller has a microprocessor and a volatile memory. The microprocessor loads boot code from the non-volatile memory to a not-always-on area of the volatile memory according to a script loaded on an always-on area of the volatile memory. The microprocessor executes the boot code loaded on the not-always-on area to load an in-system program from the non-volatile memory to the not-always-on area for execution of the in-system program. The script loaded on the always-on area is loaded from the non-volatile memory, and the non-volatile memory is searched to load the script to the always-on area in response to powering on a data storage device containing the non-volatile memory from a power-off state.