Flash memory combines a number of older technologies, with the low cost, low power consumption and small size made possible by recent, advances in microprocessor technology. The memory storage is based on earlier EPROM and EEPROM technologies. These had very limited capacity, were very slow for both reading and writing, required complex high-voltage drive circuitry, and could only be re-written after erasing the entire contents of the chip.
Hardware designers later developed EEPROMs with the erasure region broken up into smaller "fields" that could be erased individually without affecting the others. Altering the contents of a particular memory location involved first copying the entire field into an off-chip buffer memory, erasing the field,
And then re-writing the data back into the same field, making the necessary alteration to the relevant memory location while doing so. This required considerable computer support, and PC-based EEPROM flash memory systems often carried their own dedicated microprocessor system. Flash drives are more or less a miniaturized version of this.
The development of high-speed serial data interfaces such as USB for the first time made memory systems with serially accessed storage viable, and the simultaneous development of small, high-speed, low-power microprocessor systems allowed this to be incorporated into extremely compact systems. Serial access also greatly reduced the number of electrical connections required for the memory chips, which has allowed the successful manufacture of multi-gigabyte capacities. (Every external electrical connection is a potential source of manufacturing failure, and with traditional manufacturing, a point is rapidly reached where the successful yield approaches zero).