Bad Block Scan

A bad block in NAND Flash Memory (hereafter NAND) is a block that is not suitable for storing data.

There are two types of Bad Blocks: initial Bad Blocks and later Bad Blocks.

Initial bad blocks occur at about 1% of the capacity during the NAND manufacturing process.

Later bad blocks are caused by degradation from repeated programming and erasing of the NAND.

SigNAS3 includes an initial bad block detection function in the Operations menu of the GUI.

This feature scan for initial (factory default) Bad Blocks.

The specified bytes of the first page and last page in each block are read, and if either is "00",  the block is judged to be a bad block.

Most NAND manufacturers record the Bad Block Marker as above before shipping for identification, but please check the data sheet for details.

Precautions when running Script when Bad Block exists

With "Treminate with NAND Fail" enabled as shown in the figure below, if you access the Bad Block while executing the script, the execution of the script will be interrupted with the message as shown below

To avoid interruption, uncheck "Treminate with NAND Fail" or measure in an area without Bad Blocks.

However, in Error Rate measurement, Bad Blocks are automatically skipped
if Bad Block Registration is performed in advance.

Example:  Bad block detection by script

It is also possible to detect Bad Blocks programmatically (using Script, etc...).

According to the definition of BadBlock in a NAND (3D-TLC) data sheet, it fails when programming the first page of each block Iin SLC mode.

Based on this definition, I inspected it with a simple Script.

【Script example】
Script execution

Comparative verification of measurement results

As shown below, it matches the measurement result by the Bad Block Scan function of the GUI.

Sub board



In this Script, the loop of the program to the NAND memory starts from 0, So, Program Fail Block is Block Number = Repeat count - 1

62-1 = 61  --> 3D hex

286-1=285 --> 11D hex

Result by Bad Block Scan of GUI

Read status definition (in a NAND data sheet)

The definition of Bad Block varies from user to user.

The script of SigNAS3 also has the following commands, so please create an appropriate inspection program according to the purpose of evaluation and selection.

BKRDCP: Block Read & Compare

Reads all pages of the specified block and compares them with the specified pattern.

Save the mismatch location and the comparison result (XOR value, mismatch bit is represented by 1) in Compare File.

BKRDEC: Block Read & Error Count

Reads all pages of the specified block, compares with the specified pattern, and counts the number of errors.

Saves the error count results to the Error Count File.