Non-Volatile Memory Boot Synchronization Circuitry
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In digital systems, processors often become ready for execution before non-volatile memory is initialized, leading to unsuccessful boot sequences due to the memory not being ready to provide required code or data, especially in systems using Flash devices that require time for analog operations and security-related tasks.
Innovation Solution
A memory device with integrated circuitry that prevents the processor from bootstrapping until the non-volatile memory is ready by providing alternative code that causes the processor to loop until initialization is complete, ensuring that memory-access operations are only initiated when the memory is ready, thereby synchronizing the processor's boot sequence with the memory's readiness.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the processor is allowed to boot immediately after power-up, then the processor startup speed is improved, but the processor may attempt to access uninitialized memory causing boot failure
Solution Approach 1:
The memory device performs preliminary initialization actions (analog operations, security tasks) before the processor attempts to access it. The memory device detects processor access attempts during initialization and responds with alternative code that prevents premature execution, ensuring the memory is fully ready before the processor begins normal boot operations.
2Reliability
If additional reset circuits are added to synchronize processor and memory initialization, then the boot sequence reliability is improved, but the device complexity increases
Solution Approach 1:
The memory device performs self-service by autonomously detecting when the processor attempts to access it during initialization and automatically responding with alternative code. This self-detection and self-correction mechanism eliminates the need for external reset circuits or additional synchronization hardware, maintaining simplicity while ensuring reliable boot sequencing.
3Reliability
If the processor waits for memory initialization to complete before booting, then the boot sequence reliability is improved, but the startup time increases
Solution Approach 1:
Alternative code acts as an intermediary mechanism between the processor and the initialization process. The processor executes this intermediate code in response to memory access attempts, which effectively delays processor progression until memory initialization is complete, without requiring the processor to idle or wait in a non-productive state.
4Productivity
If the processor attempts to access memory during memory initialization, then the processor productivity is improved, but the memory initialization fails causing boot errors
Solution Approach 1:
The processor's premature access attempts, which would normally cause boot errors, are converted into a useful synchronization mechanism. The memory device detects these access attempts and uses them to trigger the provision of alternative code, effectively using the processor's eagerness to access memory as a signal to control the initialization timing and ensure memory readiness.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A memory device (108) includes a non-volatile memory (112) and circuitry. The circuitry is configured to initialize and prepare the non-volatile memory (112) for executing memory-access operations for a processor (102), and to ascertain that no memory-access operations are received from the processor (102) before the non-volatile memory (112) is ready, by preventing the processor (102) from bootstrapping during at least part of initialization and preparation of the non-volatile memory (112).