NAND Flash Controller Boot Frequency Adaptation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecompatibility with different NAND flash memory specificationsVSAvoidboot speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvereliability of pre-boot code acquisitionVSAvoidboot process time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #16Partial or excessive action

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvegood memory block search processVSAvoidgood memory block search efficiency
Core Design Contradiction:
Device complexityVSProductivity

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvecode fetching processVSAvoidadaptability to different memory block qualities
Core Design Contradiction:
Device complexityVSReliability

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8990549B2Method and system for booting electronic device from NAND flash memory
Publication Date: 2015.03.24 TAIWAN SEMICONDUCTOR MANUFACTURING CO LTD
  • US8990549B2 patent drawing
  • US8990549B2 patent drawing
  • US8990549B2 patent drawing

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.