Flash memory combines a number of older technologies, with lower cost, lower power consumption and small size made possible by advances in semiconductor device fabrication technology. The memory storage was based on earlier EPROM and EEPROM technologies. These had limited capacity, were slow for both reading and writing, required complex high-voltage drive circuitry, and could be re-written only after erasing the entire contents of the chip.