Recently, non-volatile memories that are programmable and erasable semiconductor devices have been widely used. A flash memory, which is a typical non-volatile memory, has a transistor that acts a memory cell and holds a charge in a charge storage layer to store data. There are a floating gate type flash memory using a floating gate as the charge storage layer, and a SONOS (Silicon Oxide Nitride Oxide Silicon) type flash memory in which a charge is stored in a trap layer formed by a silicon nitride layer.
Data is written into the non-volatile memory cell by injecting hot electrons into the charge storage layer (that is, storing charge in the charge storage layer). More particularly, a high voltage may be applied between the source and the drain of the transistor of the memory cell, and a positive voltage may be applied to the control gate. Thus, the hot electrons generated between the source and the drain are injected into the charge storage layer. The charge (electrons) injected into the charge storage layer raises the threshold voltage of the memory cell transistor. Data written into the memory cell is read by measuring the threshold voltage using current.
Conventionally, the non-volatile memory has a problem arising from charge gain or soft program. It is required to restrain this kind of problem without degrading the read margin and increasing the chip area.