The most commonly used nonvolatile memory devices typically include a multiplicity of memory cells that are each capable of storing only a single binary bit of data. When a memory cell is read, the single bit of data indicates which of two possible analog states the memory cell is in. The memory cell is either "programmed" or "erased." For some prior devices, such as the flash electrically erasable programmable read only memory ("flash EEPROM"), the state of the memory cell is varied by storing charge on an electrically isolated floating gate.
Nonvolatile memory devices that store multiple bits of binary data per memory cell are known to the prior art. For example, U.S. Pat. No. 4,415,992 describes a flash EEPROM having flash cells that each store multiple bits of binary data. Each bit of binary data corresponds to two analog states. The use of a floating gate for storing data in a flash memory cell is fundamentally the same for both the single-bit and multiple-bit flash memory cells.
Although multiple-bit memory devices are advantageous, it is desirable to have a multiple-bit per cell memory device that is capable of switching between multiple-bit and single-bit read modes. At the system level, single-bit per cell data is much more reliably determined than multiple-bit per cell data, which may require error detection and correction processing to achieve a reasonable level of reliability. Some data structures are not large enough to justify the overhead of error detection and correction data, and storage of such data structures is preferably done in a single-bit per cell write mode. Further, single-bit write and read operations are typically performed at higher speeds, and some applications may need to take advantage of the increased speed.
At the device level, there are some operations that may be performed in bulk on large portions of the memory array. Typically, these bulk operations do not require an accurate sensing of the precise state of each memory cell of the memory array. Instead, it is sufficient to discriminate between two voltage levels, which may be done using a single comparator, as is done during single-bit read operations.