The BANK is a logical unit of NAND memory space. When NAND memory has quite big amount of blocks (physically), but controller wants to reduce addresses it divides all available blocks into groups (banks). For instance, if NAND memory chip has 2048 physical blocks, but controller addresses 1024 blocks only (0-1023), it divides whole NAND memory space into 2 equal parts so the blocks that are allocated physically in the first part belong to the first bank while blocks from the second part belong to the second one. Thus both banks have logical blocks addressed from LBN 0 to LBN 1023 (Hex: 0000-03FF). Banks arranged sequentially within physical space while blocks are mixed within the bank. There might be 2/4/8/16 banks.
How to understand whether controller used banks or not ?
There's no simple way to figure out if controller used banks until markers table with initial block allocation is built.
If during block sequence analysis we noticed that majority of LBNs are duplicated 2/4/8 times having very different physical address (located physically in different parts of NAND memory) it means that the controller uses banks.
Pictures below show how multiple banks look like in MARKERS TABLE
As we can see, dump below have duplicated LBN's and each duplicated block have different address, so there are 2 banks in this cases.
In this example #3 LBN's are duplicated too, but physical addresses are very close so there's no banks. The block size should be adjusted in structure viewer (size should be doubled). This controller used multi-plane page allocation but in chip configuration the physical block size was set.
How to add banks to MARKERS TABLE
To add banks number it's necessary to click on the green plus button from MARKERS TABLE parameters and then add number of banks.
Normally number of banks may be 2,4,8 and up to 32. When banks added it's necessary to
recreate table by clicking '
' and then sort/filter blocks.
- Open case in VNR
- Check markers table
- Find number of banks
- Add banks to structure
- Re-create markers table
- Check how blocks got rearranged