Boot Sequence Optimization via Stack Pointer Placement
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional electronic devices require control codes for memory initialization and display device operation to be written in assembly language, making them difficult to understand and requiring rewrites for different CPU models, leading to slow boot times and incorrect user perceptions of system operation due to low EEPROM transmission rates.
Innovation Solution
An electronic device and method that execute control codes in high-level programming languages like C, C++, or Java before activating main memory, allowing for earlier initialization of memory controllers and display devices, facilitating intuitive development and rapid booting by setting a stack pointer in internal RAM before activating main memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If control codes for memory initialization are written in assembly language, then the booting operation can be performed, but the code becomes difficult to understand and requires rewrites for different CPU models
Solution Approach 1:
The patent changes the programming language parameter from assembly language to high-level languages (C, C++, Java). This allows the same control code to be used across different CPU models by compiling it to the appropriate architecture, eliminating the need for manual rewrites while maintaining portability and ease of development.
2Reliability
If control codes are executed after main memory is activated, then the stack pointer can be set in main memory, but the boot time increases due to sequential execution requirements
Solution Approach 1:
The patent performs preliminary actions by executing control codes to initialize the memory controller and set the stack pointer in internal RAM before activating the main memory. This allows the stack to be ready in the faster internal RAM, and subsequent operations can proceed without waiting for main memory activation, significantly reducing boot time while maintaining initialization reliability.
3Reliability
If the display device is initialized after main memory activation, then the stack must be set in main memory first, but the time to determine system status increases
Solution Approach 1:
The patent sets the stack pointer in internal RAM before activating main memory, enabling the display device to be initialized in parallel or immediately after without waiting for main memory stack initialization. This allows the system status to be displayed much faster, as the display can operate independently of the main memory activation sequence.
4Adaptability or versatility
If assembly language control codes are used for different CPU models, then the code can be adapted to specific architectures, but the development process becomes more complex and time-consuming
Solution Approach 1:
The patent changes the programming language from assembly to high-level languages (C, C++, Java), which are inherently more portable and easier to develop in. The same source code can be compiled for different CPU models using appropriate compilers, maintaining adaptability while dramatically improving development ease and reducing the time required to create architecture-specific code.
Data Source
AI summary
An electronic device and a booting method thereof are provided, wherein the method includes the steps of copying the boot image from the first non-volatile memory to the internal RAM when a booting operation of the electronic device begins, setting a stack pointer in the internal RAM by executing a control code to set the stack pointer among control codes of the boot image, and activating the main memory by executing a control code to initialize the main memory controller and activate the main memory among the control codes of the boot image, the control code to initialize the main memory controller and activate the main memory using the stack pointer. Accordingly, since the control code to initialize the main memory controller to activate the main memory is written in a high-level programming language instead of assembly language, the display device can be driven before the main memory is activated.


