Onder flashgeheugen verstaat men een niet-vluchtige vorm van extern geheugen op basis van de EEPROM-techniek. Deze techniek maakt het mogelijk om door middel van één programmeeractie op verschillende plekken in het geheugen te schrijven of te wissen. Flashgeheugen is niet-vluchtig geheugen: het behoudt de data als het apparaat wordt uitgeschakeld.

Flashmodule (onderaan), geïntegreerd op een printplaat

De naam "FLASH" is ontstaan, omdat dit type EEPROM in één keer (in een flits) volledig of gedeeltelijk gewist kan worden, om er vervolgens iets anders in te schrijven.

Er zijn twee types flashgeheugen: NOR- en NAND-flash, gebaseerd op de schakelingen die worden gebruikt om een data-item op te slaan.

Flashgeheugen wordt onder andere gebruikt als BIOS-ROM in pc's, in mp3-spelers, USB-sticks en solid state drives. Het wordt ook gebruikt in geheugenkaarten voor digitale camera's, mobiele telefoons en pda's.

Flashgeheugen wordt veel gebruikt om ingebedde systemen te booten en om configuratiedata op te slaan, in plaats van bijvoorbeeld een harde schijf. Om een aantal redenen wordt vaak schrijftoegang tot het bestandssysteem op de flash genegeerd; tenzij voor upgrades van dergelijke systemen. Door het ontbreken van mechanische onderdelen (zoals die aanwezig zijn in een harde schijf), is flashgeheugen ook robuuster en daardoor te verkiezen bij ontwerpen die niet vast gemonteerd zijn. Om een hogere capaciteit te bereiken wordt flashgeheugen gekoppeld, zodat opslag van vele gigabytes tot terabytes mogelijk is.

In laptops en pc's wordt steeds meer gebruik gemaakt van solid state drives (SSD), in plaats van de mechanische harde schijf. Deze trend heeft een aantal redenen, zoals hogere (toegangs)snelheid, robuustheid, minder stroomgebruik, en een lager gewicht.

Een van de eigenschappen van flashgeheugen is dat de schrijftoegang veel trager is dan leestoegang. Alvorens een dataonderdeel gewijzigd kan worden, moet een volledige sector gewist worden (alle bits worden op '1' gezet), waarna de nodige bits op '0' gezet worden. Een typische grootte van een flashchip-sector is 64 kB: om een byte te wijzigen (bijvoorbeeld een karakter), moeten er meer dan 64.000 bytes worden gewist en herschreven.

Het maximumaantal keren dat een individuele geheugencel kan worden geprogrammeerd ligt rond de 1 miljoen maal. Omdat met name de FAT-gegevens elke keer bij het schrijven opnieuw worden geprogrammeerd, moest er een oplossing worden bedacht voor de relatief korte levensduur van de veelgebruikte cellen in het geheugenelement, omdat de rest anders eveneens onbruikbaar zou worden. De oplossing is gelegen in het feit dat er in flashgeheugens een kleine processor is ingebouwd die de uitwendige adressering omzet in een interne dynamische adressering, waarbij steeds wordt gewisseld tussen de individuele cellen, zodat ze allemaal praktisch even vaak worden geprogrammeerd. De totale levensduur is hiermee verveelvoudigd.

Door de robuuste uitvoering is flashgeheugen bestand tegen trillingen, stoten en vallen.

Zie de categorie Flash memory van Wikimedia Commons voor mediabestanden over dit onderwerp.