Respostas:
Os primeiros dispositivos ROM precisavam ter informações inseridas neles por meios mecânicos, fotolitográficos ou outros (antes dos circuitos integrados, era comum o uso de uma grade na qual os diodos podiam ser instalados ou omitidos seletivamente). A primeira grande melhoria foi um "PROM de fusível" - um chip contendo uma grade de diodos fundidos e transistores de acionamento de linha que eram suficientemente fortes para selecionar uma linha e forçar o estado da saída que seria possível explodir os fusíveis em qualquer diodo. ninguém não queria. Embora esses chips fossem eletricamente graváveis, a maioria dos dispositivos em que seriam usados não possuía o poderoso circuito de acionamento necessário para gravar neles. Em vez disso, eles seriam escritos usando um dispositivo chamado "programador" e depois instalados no equipamento que precisava ser capaz de lê-los.
A próxima melhoria foi um dispositivo de memória de carga implantada, que permitiu que as cargas fossem implantadas eletricamente, mas não removidas. Se esses dispositivos fossem embalados em embalagens transparentes aos raios UV (EPROM), eles poderiam ser apagados com cerca de 5-30 minutos de exposição à luz ultravioleta. Isso possibilitou a reutilização de dispositivos cujo conteúdo não foi considerado valioso (por exemplo, versões com erros ou inacabadas de software). A colocação dos mesmos chips em um pacote opaco permitiu que eles fossem vendidos de forma mais barata para aplicativos do usuário final, onde era improvável que alguém quisesse apagá-los e reutilizá-los (OTPROM). Uma melhoria subsequente tornou possível apagar os dispositivos eletricamente sem a luz UV (EEPROM inicial).
Os primeiros dispositivos EEPROM só podiam ser apagados em massa, e a programação exigia condições muito diferentes daquelas associadas à operação normal; consequentemente, como nos dispositivos PROM / EPROM, eles geralmente eram usados em circuitos que podiam ler, mas não escrevê-los. Melhorias posteriores na EEPROM tornaram possível apagar regiões menores, se não bytes individuais, e também permitiram que elas fossem gravadas pelo mesmo circuito que as usava. No entanto, o nome não mudou.
Quando uma tecnologia chamada "Flash ROM" entrou em cena, era bastante normal para dispositivos EEPROM permitir que bytes individuais fossem apagados e reescritos dentro de um circuito de aplicativo. O Flash ROM foi, de certo modo, um retrocesso funcional, já que o apagamento só podia ocorrer em grandes pedaços. No entanto, restringir o apagamento a grandes pedaços tornou possível armazenar informações de maneira muito mais compacta do que era possível com a EEPROM. Além disso, muitos dispositivos flash têm ciclos de gravação mais rápidos, mas ciclos de apagamento mais lentos do que seria típico dos dispositivos EEPROM (muitos dispositivos EEPROM demoram de 1 a 10 ms para escrever um byte e de 5 a 50 ms para apagar; os dispositivos flash geralmente requerem menos de 100us para escrever, mas alguns exigiram centenas de milissegundos para apagar).
Não sei se há uma linha divisória clara entre o flash e a EEPROM, já que alguns dispositivos que se autodenominavam "flash" podiam ser apagados por byte. No entanto, a tendência atual parece ser o uso do termo "EEPROM" para dispositivos com capacidade de apagar por byte e "flash" para dispositivos que suportam apenas apagamento de grandes blocos.
Spoiler: EEPROM é de fato o Flash.
Como a resposta da supercat apontou brilhantemente, a EEPROM é uma evolução das mais antigas EPROMs apagáveis por UV (a "EE" da EEPROM significa "eletricamente apagável"). No entanto, apesar de melhorar o antigo amigo, a maneira atual da EEPROM de reter informações é exatamente a mesma da memória flash.
A única diferença principal entre os dois é a lógica de leitura / gravação / exclusão.
Flash NAND (flash normal):
Só pode ser apagado em páginas aka. blocos de bytes. Você pode ler e escrever bytes simples (não gravados), mas a exclusão requer a eliminação de muitos outros bytes.
Nos microcontroladores, geralmente é usado para armazenamento de firmware. Algumas implementações suportam a manipulação do flash a partir do firmware; nesse caso, você pode usá-lo para armazenar informações, desde que não mexa nas páginas usadas (caso contrário, você apagará o firmware).
NOR Flash (também conhecido como EEPROM):
Pode ler, escrever e apagar bytes únicos. Sua lógica de controle é apresentada de tal maneira que todos os bytes sejam acessíveis individualmente. Embora seja mais lento que o flash comum, esse recurso beneficia dispositivos eletrônicos menores / mais antigos. Por exemplo, TVs e monitores CRT mais antigos usavam EEPROMs para manter configurações do usuário, como brilho, contraste etc.
Nos microcontroladores, é o que você geralmente usa para armazenar configurações, estados ou dados de calibração. É melhor que o flash, pois, para apagar um único byte, você não precisa se lembrar (RAM) do conteúdo da página para reescrevê-lo.
Curiosidade
Há um equívoco comum de que o NOR Flash usa portas NOR enquanto o NAND Flash usa portas NAND (e, de fato, parece óbvio). Entretanto, isso não é verdade. O motivo da nomeação é a semelhança da lógica de controle de cada tipo de memória com os símbolos esquemáticos das portas NAND e NOR.
Flash é um tipo de EEPROM (memória somente leitura programável apagável eletricamente). "Flash" é mais um termo de marketing do que uma tecnologia específica. No entanto, esses termos convergiram para significar um tipo de EEPROM otimizado para tamanho e densidade grandes, geralmente às custas de grandes blocos de apagamento e gravação e resistência menor.
A memória flash é uma variação do EE-PROM que está se tornando popular. A principal diferença entre a memória flash e o EE-PROM está no procedimento de apagamento. O E-PROM pode ser apagado em um nível de registro, mas a memória flash deve ser apagada em sua totalidade ou em nível setorial.
O armazenamento "Flash" é um termo genérico para armazenamento em chips de memória ( memória não volátil), em vez de discos giratórios, como disquete, CD, DVD, disco rígido etc.
NOR e NAND são os chips de memória flash originais e foram inventados pela Fujio Masuoka enquanto trabalhavam para a Toshiba por volta do ano 1980. "NOR" e "NAND" são usados na maioria dos pen drives USB.
O armazenamento em flash também inclui EEP-ROM (memória somente leitura programável apagável eletricamente) e NV-RAM (memória de acesso aleatório não volátil). O EEP-ROM é mais barato e é usado para armazenamento na maioria dos dispositivos System-on-Chips e Android. A NV-RAM é mais cara e usada para unidades de estado sólido e armazenamento em dispositivos Apple.
Os novos chips NV-RAM são muito mais rápidos que o EEP-ROM e outras tecnologias Flash.
Para obter mais informações, consulte: http://www.crifan.com/___flash_memory_nand_eeprom_nvram_and_others_zt/