A un nivel básico, cada bit de memoria flash es un solo transistor FET.
Los FET son el componente básico de prácticamente toda la lógica digital moderna, un FET se puede ver como un interruptor. Si hay una carga en una de las conexiones llamada compuerta, entonces el interruptor está encendido y la corriente puede fluir entre las otras dos clavijas. Si no hay carga en la puerta, el interruptor está apagado y la corriente no puede fluir.
Lo que tiene de especial un chip flash es que los FET tienen lo que se conoce como una puerta flotante. En lugar de estar conectado eléctricamente a una señal, la puerta no está conectada a nada, está rodeada por un aislante. Una vez que hay una carga eléctrica en la compuerta que no tiene a dónde ir, el transistor está permanentemente encendido. Así es como un chip FLASH (o casi cualquier forma de EEPROM) mantiene los datos cuando se apaga la alimentación.
Entonces, ¿cómo se programa el chip? Ningún aislante es perfecto. Sobre la compuerta flotante hay una compuerta de control. Si pones un voltaje suficientemente alto (o bajo) en esa compuerta de control, puedes forzar la carga (o apagarla) de la compuerta flotante que te permite programar o borrar la memoria.