Por que alguém ainda usaria EEPROM normal em vez de flash?


34

Existe alguma razão para as pessoas ainda estarem usando (e implementando em novos sistemas) EEPROMs normais em vez de memória flash atualmente?

Na wikipedia da memória Flash :

A memória flash foi desenvolvida a partir da EEPROM (memória somente leitura programável apagável eletricamente).

Haveria alguma desvantagem (consumo de energia, espaço, velocidade, etc.) ao usar o flash em vez da EEPROM normal?


Eu acho que você pode estar confuso entre EPROM (somente apagável sob UV, principalmente obsoleto) e EEPROM (apagável eletricamente).
Pjc50

@ pjc50 eu não sou - eu citei a parte errada do wiki, corrigido agora - graças :)

2
O flash é apagado em grandes pedaços, enquanto a EEPROM pode ser apagada por byte.
jippie

2
Você nunca saberia que eles são os mesmos ao ler as folhas de dados do PIC ... eles ainda têm diferentes tolerâncias. Mas acho que pode ser marketing. Afinal, eles também têm o "Enhanced Flash". Aliás, a EEPROM desapareceu no PIC 32 e a gravação mínima da página flash é de 4k bytes.
gbarry

2
@ gbarry: Eles não são os mesmos. O flash é EEPROM, mas nem todos os EEPROM são flash. Lembre-se do que significa EEPROM, que é uma memória somente leitura programável apagável eletricamente .
amigos estão dizendo

Respostas:


26

Para ser pedante, a memória FLASH é apenas uma forma de EEPROM: Há um aspecto de marketing / marca aqui. Normalmente, a distinção usada hoje é que as EEPROMS são apagáveis ​​/ regraváveis de byte único (ou palavra de armazenamento ), enquanto o FLASH é baseado em bloco para operações de apagamento / gravação.

Relevante para a pergunta:

  • As EEPROMs continuam populares, devido às classificações máximas do ciclo de apagamento / gravação serem uma ordem de magnitude ou duas melhores que o FLASH
  • Como os investimentos em design geralmente são amortizados ao longo do tempo, como em qualquer tecnologia madura, o custo de produção e teste é reduzido em comparação com uma tecnologia mais nova.

2
Todo mundo falando sobre apagar um único byte ou baseado em bloco, mas qual é a teoria por trás disso? Eu posso apagar qualquer número de bytes para a memória flash também !!!
The Beast

11
@Frankenstein, como isso é feito?
abdullah kahraman

19

O número de ciclos de gravação que a maioria das EEPROMs pode suportar geralmente excede em muito o número de ciclos de gravação que a maioria da memória flash pode suportar.

As EEPROMS geralmente podem lidar com ~ 100.000 a 1.000.000 gravações por célula.
Geralmente, o Flash é classificado como ~ 1.000 a 100.000 gravações (varia muito, dependendo do tipo de flash).

Outra vantagem da EEPROM sobre o flash é que o flash geralmente deve ser apagado em blocos; portanto, se seus padrões de gravação envolvem gravações seqüenciais de byte único, você usará muito mais ciclos de gravação na memória flash do que na EEPROM equivalente, como EEPROM a memória geralmente pode ser apagada por byte, e não pelo ciclo de apagamento por bloco usado pelo flash.

Basicamente, o flash geralmente é apagado em blocos de ~ 64-512 kilobytes. Portanto, para cada gravação em qualquer lugar dentro desse bloco, o controlador deve apagar o bloco inteiro, usando um ciclo de gravação para todo o bloco. Você pode ver que, se executasse gravações de byte único em cada endereço em um bloco, acabaria executando entre 64K e 512K gravações em todo o bloco, o que poderia facilmente usar toda a resistência de gravação do flash.

Como tal, as EEPROMs geralmente são usadas em situações em que o processador local é pequeno e não tem capacidade para armazenar gravações em buffer em cada página flash.


Muito disso está se tornando menos verdadeiro à medida que a tecnologia flash avança. Existem ICs de memória flash que incluem os recursos para buffer de gravação local, bem como a resistência de gravação na memória flash aumentando drasticamente.


O tamanho de um bloco de apagamento e um bloco de gravação geralmente não é o mesmo. Também para o flash antigo de bit único por célula, era possível sobrescrever blocos de maneira confiável pelo menos uma vez, desde que a gravação não exigisse a alteração de um valor de bit novamente para o estado apagado. Por exemplo, se 1 for o estado apagado, com blocos de 16 bits, pode-se escrever 0bxxxxxxxx11111111 e depois escrever 0bxxxxxxxxyyyyyyyy (ou mesmo 0b101010101111111111 e depois 0b00000000xxxxxxxx).
Paul A. Clayton

@ PaulA.Clayton - Bom ponto.
Connor Lobo

@ PaulA.Clayton: Uma coisa que eu gostaria que os fornecedores de flash documentassem é se alguém pode legitimamente zerar uma grande parte de um bloco de flash já gravado sem precisar apagá-lo primeiro. Ser capaz de invalidar expressamente uma página diretamente, sem ter que acompanhar o fato de que a página foi invalidada seria muito útil.
precisa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.