NAND Flash Bootstrap Identification Using ECC Byte Checks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for identifying NAND flash memory devices are inefficient and require frequent updates to static device ID look-up tables as new devices are released, leading to costly maintenance and inability to recognize devices without reading identification codes.

Innovation Solution

A method that reads bootstrap code from a flash memory device assuming different page sizes and data bus sizes, checks error correction code bytes for errors, and generates signals to identify the correct combination without using static device ID look-up tables, allowing flexible access to various NAND flash memory devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a static device ID look-up table is used to identify NAND flash memory devices, then the host system can recognize existing devices, but the system requires frequent updates and maintenance as new devices are released

Engineering Contradiction:
Improvedevice recognition accuracyVSAvoidmaintenance effort
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The NAND flash memory device automatically provides its identification information (page size and data bus size) through its bootstrap code and ECC structure, eliminating the need for the host system to maintain external lookup tables. The device serves itself by embedding recognition information in its operational characteristics.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention extracts the essential identification information (page size and data bus size) from the device's operational behavior during bootstrap code execution, rather than relying on external static tables. This separates the identification function from maintenance-heavy lookup tables.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If the static device ID look-up table is continually updated to support new NAND flash products, then newer devices can be recognized, but larger memory capacities are allocated to the table requiring costly configuration

Engineering Contradiction:
Improvesupport for new device typesVSAvoidmemory capacity for lookup table
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The device inherently provides its identification characteristics through its bootstrap code execution and ECC structure, eliminating the need for the host system to allocate and update large memory tables for device identification. Each device type identifies itself through its operational parameters.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Instead of the host system maintaining information about devices (traditional approach), the invention inverts the approach by having devices provide their own identification information through their operational characteristics (bootstrap code and ECC), reversing the information flow direction.

Inventive Principle:
Principle #13The other way round (Inversion)

3Ease of operation

If the static device ID table is stored in BOOT code or on-chip ROM code, then device identification is integrated, but the configuration operation becomes costly and complicated as tables grow larger

Engineering Contradiction:
Improveintegrated identificationVSAvoidconfiguration complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The invention extracts only the essential identification parameters (page size and data bus size) from the device's operational behavior during bootstrap execution, rather than storing comprehensive device ID tables in BOOT or ROM code. This minimizes the configuration data required.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The device provides its own identification information dynamically during operation through its bootstrap code and ECC structure, eliminating the need for pre-configured identification tables in BOOT or ROM code, thereby simplifying the configuration process.

Inventive Principle:
Principle #25Self-service

4Adaptability or versatility

If a flexible access method is implemented to support future device types without updating hardware, then adaptability is improved, but the identification process becomes more complex

Engineering Contradiction:
Improvefuture device compatibilityVSAvoididentification process complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The invention inverts the traditional identification approach by having devices provide their own identification characteristics through operational behavior rather than the host system maintaining comprehensive device databases. This naturally supports future devices without hardware updates.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The bootstrap code execution and ECC verification process serves multiple functions: it initializes the device, verifies its operational integrity, and simultaneously provides identification information about page size and data bus size. This multi-functionality achieves flexibility without adding separate identification mechanisms.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8370718B2Method for identifying a flash memory device and related hosting device
Publication Date: 2013.02.05 STMICROELECTRONICS SRL
  • US8370718B2 patent drawing
  • US8370718B2 patent drawing
  • US8370718B2 patent drawing

AI summary

A method is for identifying a flash memory device coupled to a host device. The flash memory device may have a page size from possible page sizes, bootstrap code stored on a first sector thereof, and a data bus for accessing data stored in the flash memory device and with a data bus size from possible data bus sizes. The method may include reading data stored in a first page of the first sector as if the flash memory device had an assumed page size and an assumed data bus size, and reading content from memory locations where error correction code (ECC) bytes of the first page are stored if the flash memory device has the assumed page size and checking whether the ECC bytes include more than a number of errors associated with the assumed page size. The method may also include if the ECC bytes do not include more than the number of errors, generating a flag signal that the flash memory device has the assumed page size and the assumed data bus size.