Banks

Banks

Banks

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.


Example 1
































Example 2

































Example 3


    
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 ' Create table ' and then sort/filter blocks.










Practical cases

  1. Open case in VNR
  2. Check markers table
  3. Find number of banks
  4. Add banks to structure
  5. Re-create markers table
  6. Check how blocks got rearranged



    • Related Articles

    • Asymmetric Multi-Plane page allocation

      Standard Multi-Plane page allocation To understand how the asymmetric multi-plane page allocation works it is necessary to know how the standard one works. This is an important topic because many devices are using it, and almost all of them are ...
    • Phison - Double block rotation and SLC block management

      The solution step by step It’s been many years since the first NAND controllers were released on the market. Many technological aspects of flash devices have changed since that time, but one thing is certain, along with the multiplied capacity, the ...
    • Binary patterns in NAND flash memory

      Analysis and recognition of binary patterns in NAND flash memory is the key step in chip-off data recovery and digital forensic analysis of broken flash devices. This analysis is carried out in the Bitmap mode since the classic HEX view does not ...
    • Flash Drive Data Recovery educational webinars

      Chip-off NAND data recovery with Visual NAND reconstructor consists of several essential steps whose task is to reverse transformations which controller applied on user data. In those education webinars, you will find out how to extract raw dumps ...