Why must flash memory be written/erased in pages/blocks?

It's by definition. A flash memory that allows writing individual bits is called EEPROM.

Flash differs from EEPROM in that erasures are done in blocks, rather than individual bits. Because erasing is a relatively slow operation, and must be done before writing, performing the erase in a large block makes large write operations faster, by virtue of erasing a large number of bits in parallel.

Erasing in blocks also allows simplifications to the IC, reducing cost. Economies of scale further reduce cost of flash over EEPROM, as flash is used in great quantities these days for solid state disk drives, while EEPROM is used in much smaller quantities.


You are right in the fact that there's no physical justification for having to erase in block units.

Programming a cell is done by creating an electric field between the bulk and the control gate like shown in fig1, and the same idea is valid for erasing the cell, an electric field in the opposite direction would do the job as shown in fig2. enter image description here However, for constructive reasons, it's relatively complex to generate and use the negative voltage, so the strategy used is the one shown in fig3, by setting a high voltage at the bulk (which is the logic ground reference in the sector). Selection transistors can't be used anymore, only the control gates can be driven low, and this forces a full sector erase.