Read data error check
Data error occurs in NAND Flash Memory (NAND) due to various factors.
- Read Distrub
- Pages other than those read in the block are damaged, resulting in garbled bits.
- Data Retantion
- If it is not accessed for a long time, the electric charge is lost and bits are garbled.
- Power off
- If the power is interrupted during access, the NAND state becomes unstable and data error occurs.
Of course, there are cases where the correct data was not recorded due to a problem during programming.
- If the power is interrupted during access, the NAND state becomes unstable and data error occurs.
An example of inspection using Script is shown below.
Identifying Anomalies
SigNAS3 has a script command that dumps the read data as it is or compares it with the specified pattern to identify abnormal points.
【Script example】
- BKERAS 0 0000
- VSET04 1 0000
- REPEAT 0000005 0000006
- PGPROG 0 0000 $V04_01$ INCRMT 03020100 04040404
- PGREAD 0 0000 $V04_01$
- PGDUMP 0 0400
- PGRDCP 0 0000 $V04_01$ 0400 INCRMT 03020100 04040403
(Intentionally set different values because they cause data discrepancies) - VADD04 1 0001
PGRDCP command
For the comparison length, specify the number of data in 4-byte units with 4 hexadecimal digits.
For example, if 0400 is specified, 1024 pieces of 4-byte unit data, that is, 4096-byte data are compared.
【Result】
Dump File
Line | Cnt | Channel | Chip | Block | Page | WordNo | Dump |
3 | 1 | 0 | 0 | 0 | 0 | 0 | 03020100 |
3 | 1 | 0 | 0 | 0 | 0 | 1 | 07060504 |
3 | 1 | 0 | 0 | 0 | 0 | 2 | 0B0A0908 |
3 | 1 | 0 | 0 | 0 | 0 | 3 | 0F0E0D0C |
3 | 1 | 0 | 0 | 0 | 0 | 4 | 13121110 |
3 | 1 | 0 | 0 | 0 | 0 | 5 | 17161514 |
【Commentary】
In this example, the data according to the preset pattern is programmed and read.
Compare File
Line | Cnt | Channel | Chip | Block | Page | WordNo | Comp |
3 | 1 | 0 | 0 | 0 | 0 | 1 | 00000007 |
3 | 1 | 0 | 0 | 0 | 0 | 2 | 0000000E |
3 | 1 | 0 | 0 | 0 | 0 | 3 | 00000005 |
3 | 1 | 0 | 0 | 0 | 0 | 4 | 0000001C |
3 | 1 | 0 | 0 | 0 | 0 | 5 | 0000001B |
【Commentary】
Save the mismatch location and the comparison result (XOR value, mismatch bit is represented by 1) in Compare File.
Word 0 : In this example, there are no unmatched bits, so they are not recorded in the Compare File.
Word 1 : 7, which is the XOR of comparison data 3 and lowest data 4 of read data, is recorded.
Word 2 : E, which is the XOR of comparison data 6 and lowest data 8 of read data, is recorded.
Error count analysis for each ECC block
There is also a function to analyze the number of errors for each ECC block based on the ECC Code length.
【Example】
Evaluation of NAND with the following specifications
Block Size: 1152page
Page Size: 18592byte
ECC Code Length: 1162byte
∴Number of ECC blocks per page = 18592byte/1162byte = 16
【Script example】
Evaluation of blocks that were damaged and bit garbled after recorded Random data (seed: 456789AB).
PGRDEC command
Reads the specified page, compares with the specified pattern, and counts the number of errors.
When ECCANA is set to 1, the error count results (number of bit errors per ECC block) are saved in the Error Count File.
- ECCANA 1
- VSET04 1 0000
- PGRDEC 0 0000 0000 RDMOVL 456789AB
- REPEAT 0000002 0000003
- PGRDEC 0 0000 $V04_01$ RDMOVL
- VADD04 1 0001
※ RDMOVL is a command to read and compare pages in a block programmed with the RDMOVL pattern.
Please note that the usage is different from other patterns as shown below.
PGRDEC 0 0000 0000 RDMOVL 456789AB(Initialize only, do not read or compare)
PGRDEC 0 0000 0000 RDMOVL(Page 0 Reads and Compare)
Error Count file
Channel | CE | Block | Page | BitError | ECBK0 | ECBK1 | ECBK2 | ECBK3 | ECBK4 | ECBK5 | ECBK6 | ECBK7 | ECBK8 | ECBK9 | ECBK10 | ECBK11 | ECBK12 | ECBK13 | ECBK14 | ECBK15 |
2 | 0 | 0 | 1062 | 48 | 3 | 2 | 0 | 2 | 5 | 5 | 3 | 6 | 4 | 2 | 1 | 2 | 2 | 4 | 5 | 2 |
2 | 0 | 0 | 1066 | 44 | 2 | 1 | 0 | 1 | 5 | 2 | 4 | 4 | 1 | 2 | 2 | 1 | 5 | 4 | 9 | 1 |
BKRDEC command
Read all pages of the specified block, compares with the specified pattern, and counts the number of errors.
When ECCANA is set to 1, the error count result (histogram of bit error count in ECC block) are saved in Error Count File.
255 results are saved in order of the number of ECC blocks with 0-bit error, the number of ECC blocks with 1-bit error, the number of ECC blocks with 253-bit error, and the number of ECC blocks with 254-bit or more error.
Script
ECCANA 1
BKRDEC 0 $V04_00$ RDMOVL 456789AB
Error Count file
SigNAS3 has some error analysis functions in the GUI, so please use them according to your purpose.
Please refer to the Operation Manual for details.