Dual NVM Bootcode Segmentation for Rapid System Initialization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data processing systems experience lengthy boot times due to the slow read speed of traditional nonvolatile memory (NVM) used for bootcode, which leads to energy wastage and delays in critical applications, and there is a need for faster booting mechanisms to reduce these issues.
Innovation Solution
Implementing a dual NVM system with a high-speed NVM and a low-speed NVM, where the bootcode is split into modules, with the high-speed NVM supporting faster read speeds than the low-speed NVM, allowing for quicker loading of bootcode into RAM and reducing overall boot time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If traditional low-speed NVM is used for bootcode storage, then hardware costs are reduced and system simplicity is maintained, but boot time increases significantly
Solution Approach 1:
The bootcode is divided into two modules: a first bootcode module stored in low-speed NVM and a second bootcode module stored in high-speed NVM. The first module executes initially and loads the second module, enabling rapid booting while maintaining system simplicity through functional segmentation of the boot process.
Solution Approach 2:
The second bootcode module is pre-loaded into high-speed NVM during system configuration or manufacturing. This preliminary action ensures that when the system boots, the critical second module is already available in fast memory, significantly reducing boot time without requiring complex real-time loading mechanisms.
2Loss of time
If high-speed NVM is used for bootcode storage, then boot time is reduced, but hardware costs increase
Solution Approach 1:
Instead of using high-speed NVM for the entire bootcode, only the critical second bootcode module that requires fast access is stored in high-speed NVM. The first bootcode module remains in low-speed NVM, optimizing performance for the most time-sensitive operations while minimizing the amount of expensive high-speed memory required.
Solution Approach 2:
The system uses high-speed NVM partially - only for the second bootcode module - rather than fully replacing low-speed NVM. This partial application of high-speed memory provides sufficient boot time improvement while controlling hardware costs by limiting the quantity of expensive components.
3Use of energy by moving object
If bootcode is executed from low-speed NVM, then system simplicity is maintained, but energy consumption increases due to prolonged boot process
Solution Approach 1:
The bootcode is segmented into two modules executed in sequence: the first module from low-speed NVM and the second module from high-speed NVM. This segmentation reduces the total time the system spends in the high-energy boot state, thereby reducing overall energy consumption during initialization.
Solution Approach 2:
The boot process maintains continuous useful action by having the first bootcode module immediately load and transfer control to the second module without idle waiting periods. This continuous execution minimizes the duration of power consumption during the critical boot phase.
Data Source
AI summary
A method for booting a data processing system (DPS) involves, during a boot process of the DPS, using a preliminary bootcode module from a low-speed nonvolatile memory (NVM) in the DPS to load a main bootcode module from a high-speed NVM in the DPS into a volatile random access memory (RAM) in the DPS, wherein the high-speed NVM supports a read speed that is faster than a maximum read speed of the low-speed NVM. The method also involves, during the boot process, after loading the main bootcode module from the high-speed NVM into the RAM, using the main bootcode module to boot the DPS to an operating system (OS). The method may also involve using the preliminary bootcode module to automatically determine whether the main bootcode module from the high-speed NVM has good integrity. Other embodiments are described and claimed.


