Flash memory is a type of electrically erasable programmable read-only memory [EEPROM] chip that can be used for the transfer and permanent storage of digital data. It is actually a long-term persistent storage computer storage device that can be electrically erased and reprogrammed.
In this device, the information is stored as an array of floating gate transistors called cells. Each of these cells can store only one bit of information at a time. The design of each memory cell is somewhat similar to that of a MOSFET. The only difference is that this cell has two gates. The gate on top is called the control gate [CG], and the bottom one is called the floating gate [FG]. FG may be made of conductive materials like poly silicon or can also be non-conductive. These two gates are separated from each other by a thin oxide layer. To know the exact representation, take a look the figure given below.
The FG can come in contact with the word line only through CG. When that particular link is closed, the cell will have a value ’1′. In order to change the value to ’0′, a process called tunneling has to be done. This charge cancels the electric field from CG, and thus causes to modify the threshold voltage [V] of the cell.
During the read process, a voltage that is below V is applied to CG. This V depends whether the channel should be conducting or insulating, which is in turn controlled by the FG charge. This causes the channel to know the current flow and hence the binary code is formed. This is the method of reproducing the stored data. As told earlier, the flash memory can be read only with one byte at a time. But while erasing it, it must be erased as a block. In a block there are a lot of bytes. If you program any of these bytes and later want to erase it, you will have to erase the whole block. So, in short, the device can offer you random access read and programming operations, it cannot offer you random access rewriting or erasing operations.