LSB (Least Significant Bit) and MSB (Most Significant Bit) are actually two bits in the same cell of a MLC NAND Flash, LSB is relative to Lower Page and MSB is associated to Upper Page. As the Lower Page is programmed first, the Upper Page has higher requirements for the voltage accuracy during programming. Programming the Upper Page is slow and inevitably causes influences or even errors to Lower Page. And in theory programming the Lower Page certainly has effects on the Upper Page.
Two important questions have to be answered first for testing LSB and MSB: 1. How to figure out which is LSB and which is MSB.
For the first question, some NAND Flash manufacturers give out which are the shared pages with a list in the datasheet, while some others don’t provide this. It is quite simple for those with the list, we can just follow the list to do the test.
Shared Pages List provided by Nand Flash manufacturer:
And for those without such list, we can judge by testing the programming time for each page that the pages with shorter programming time are Lower Pages and longer time are Upper Pages.
Suppose the NAND Flash manufacturer doesn’t provide the list of shared pages, there are two approaches to test the programming time for each page: One is test through the GUI of NFA100, and another is test through scripts. The script takes the advantage of handling all the other tests to avoid redundant steps.
Based on the above, the test flow chart is designed as follows:
Create a new.txt file, then just change .txt to .SSL as the suffix of NFA100 script, test script as follows (e.g.):
VSET08 0 456789CF
REPEAT 0000008 000003E8
BKERAS 0 0003
PGRDDM 0 0003 004 0300
PGRDDM 0 0003 004 RDMOVL $V08_0$ PGRDCP 0 003 004 0300 RANDOM 456789CF
PGRDDM 0 0003 004 RDMOVL $V08_0$ PGRDDM 0 0003 004 0300
PGRDEC 0 003 004 RANDOM 456789CF VADD08 0 00000001
FNECNT 1 blk0003.ect
BKRDEC 0 0003 RDMOVL $V08_0$
Mutual impacts between LSB and MSB can be obtained rapidly by loading the script to NFA100, and of course the same approach can be adopted to test the interaction influences among the adjacent cells in a block, namely Program Disturb and Read Disturb.