NAND Flash Controller Boot Frequency Adaptation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing NAND flash controllers lack flexibility in operating at different boot frequencies and inefficiently search for good memory blocks, leading to slowed boot processes due to inconsistent vendor specifications and incorrect fetching of pre-boot code portions.
Innovation Solution
A NAND flash controller system that identifies event triggers to fetch only the necessary portion of the pre-boot code, operates at varying boot frequencies, and efficiently searches for good memory blocks by checking multiple pages, allowing for flexible operation and faster booting.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the controller fetches the pre-boot code at the lowest booting frequency to ensure compatibility with all NAND flash memories, then the system can operate with diverse memory specifications, but the boot process is considerably slowed
Solution Approach 1:
The system dynamically determines the boot frequency based on the specific NAND flash memory's capabilities rather than using a fixed lowest frequency. The controller identifies the memory type and selects the appropriate boot frequency, allowing the system to adapt between compatibility mode (lower frequency) and performance mode (higher frequency) as needed.
Solution Approach 2:
The invention changes the boot frequency parameter based on the detected NAND flash memory specifications. By identifying the memory type and its capabilities, the system adjusts the boot frequency parameter to optimize performance while maintaining compatibility, rather than being constrained to a single fixed frequency.
2Reliability
If the controller fetches the entire pre-boot code for both RCW and boot load prompts, then the code is reliably obtained, but the boot process becomes inefficient
Solution Approach 1:
The system applies partial action by fetching only the necessary portion of the pre-boot code based on the trigger type. For boot load prompts, it fetches only the required portion rather than the entire code, reducing the time lost while maintaining reliability through accurate identification of the trigger type and precise fetching of the needed code segment.
Solution Approach 2:
The controller uses feedback from the trigger type identification to determine how much code to fetch. By recognizing whether it's an RCW load prompt or boot load prompt, the system adjusts the fetching operation accordingly, avoiding unnecessary fetching of entire code blocks and optimizing the boot process time.
3Device complexity
If the controller searches for good memory blocks by checking only the first two pages, then the search process is simplified, but the search efficiency is reduced
Solution Approach 1:
The system expands the search scope from just the first two pages to include multiple pages across the memory block. By checking pages in a more comprehensive manner (first page, second page, and last page), the system increases search efficiency without significantly increasing complexity, as the additional checks follow a systematic pattern.
Solution Approach 2:
The controller performs preliminary checks of multiple pages to identify good memory blocks before proceeding with the boot process. By pre-checking the first, second, and last pages, the system ensures that it selects a reliable memory block efficiently, avoiding the need for more extensive searching later.
4Device complexity
If the controller uses a fixed predetermined location for fetching pre-boot code, then the process is simplified, but it cannot adapt to different memory block qualities
Solution Approach 1:
The system dynamically determines the fetching location based on the identified good memory block rather than using a fixed predetermined location. By adapting the fetch location to the actual quality and position of good memory blocks found during scanning, the system maintains simplicity while improving reliability and adaptability to different memory configurations.
Data Source
AI summary
A method and system for booting an electronic device from a NAND flash memory includes a NAND flash controller that receives an event trigger for fetching a pre-boot code stored in the NAND flash memory. Based on the event trigger type, booting parameters are loaded into the controller including a boot frequency of the NAND flash memory. The controller searches for a good memory block in which the pre-boot code is stored by checking the first and second or the first and last pages of a memory block and fetches a portion or the entire pre-boot code based on the event trigger type at the boot frequency.


