Innovation... driven by intelligence and logic

NAND Chip Driver


A NAND Chip Driver is a part of Kernel Written in Embedded 'C' Language . NAND flash chips are used as non – volatile memory that can be electrically erased and reprogrammed .The NAND type is primarily used in memory cards, USB flash drives, solid state drives and similar products, for general storage and transfer of data . NAND flash chips, unlike their NOR counterparts, are not connected to the CPU via data and address lines. They interface to the CPU through special electronics called a NAND flash controller that is part of many embedded processors. The controller transfers data from the requested flash location to an internal RAM memory, also part of the controller.


Flash Memory was invented by Dr Fujio Masuoka while working for TOSHIBA in 1980 and the name 'flash' was suggested . TOSHIBA announced NAND Flash at the 1987 International Electron Devices Meeting . It has reduced erase and write times ,and requires less chip area and cell, thus allowing greater storage density and lower cost per bit than NOR flash; it also has up to ten times the endurance of NOR flash .

NAND Flash interfaced with the CPU through special electronics called a NAND Flash Controller that is a part of Processor . To read data from NAND Flash ,the CPU issues reading command and send to the NAND Controller . The data transfer is done in units of the flash chip's page size (app. 4096 bytes) . The more dense nand chip has larger page size . The page size of flash chip is different from Block size but page size is in multiple of block size(minimum storage unit of flash) . So data transfer from NAND chip to internal RAM . In write operation data transfers from internal RAM to flash .

A typical NAND device driver falls into two parts:

  • High-level operations specific to the NAND chip (page reads and writes)
  • board-specific plumbing (sending commands and data to the chip; reading data back from the chip).
Flash memory stores the information in an array of memory cell made by floating-gate transistor. There are two basic types of NAND chips.
  • Single Level Cell
    • Each Cell stores only single bit of information
  • Multi Level Cell (advanced)
These Chips can store more then one bit per cell by choosing between multiple levels of electric charge to apply to the floating gates of its cells.

NAND chip driver controls the NAND flash controller and provide access to the chip's data .

Now a days so many vendors creating their own Nand flash chips . So drivers are written for every type of NAND chip . So to interface and improve the performance of the NAND flash we need to upgrade and develop or improve the drivers .

  • Good Understanding of storage devices .
  • Advanced Embedded 'C' language Programming .
  • Implemented Character driver ,Serial driver , Block driver .
  • Understanding of OS level Concepts and driver Interfaces .
Training Topics In Brief:
  • Initialization and exit of driver using devinit and dev exit function .
    • initialising the device, typically by sending a reset command .
    • interrogating the device to confirm its presence and properties .
    • setting up the partition table list (see "Planning a port" above) .
    • setting up mutexes as necessary for synchronization .
  • Operations On NAND flash
    • Reading the data from flash chip
    • Writing the data to nand flash
    • Erasing the NAND flash
Go to Top ^