Dif. primaria entre EEPROM y Flash mem, en términos de memoria de código

0

En términos de almacenamiento de comandos de programa, ¿cuál es la diferencia definible entre EEPROM y la memoria Flash?

También, en este contexto particular -
Para un proyecto personal que desarrolla códec de audio con TI AIC3254, un desarrollador se centró en Microchips PIC32MX220F032B . Es una MCU de 32 bits con 32 kB de EEPROM. También tiene 3kB aux flash con 8kB de RAM.

Debido a la complejidad, ahora estamos decidiendo utilizar Arduino Mega 2560 basado en ATMega 2560 , que es 8 -bit pero 256kB Flash, 4Kb EEPROM y 8kB RAM.

¿Cuál es la diferencia aquí? Flash y EEPROM, ¿qué diferencia hace al almacenar código?

    
pregunta phenomenon

2 respuestas

2

"EEPROM" se usa generalmente para almacenar cantidades relativamente pequeñas de código. Esto se debe a la evolución de las tecnologías ROM :

  • PROM (Memoria de solo lectura programable) o OTP (programable por única vez) es el tipo más antiguo de ROM. Estos se usaban comúnmente en cartuchos de videoconsolas donde se deseaba un código programable (y no modificable). El almacenamiento era bastante limitado, generalmente medido en bits, y aparecían como "circuitos integrados regulares". Su retención es muy larga, pero cada bit ocupa un área grande, por lo que producir un IC con grandes capacidades de almacenamiento es un reto.

  • EPROM (PROM borrable) fue el sucesor de la PROM de muchas maneras, sin embargo, a menudo solo difería según la La matriz de silicona se puede ver a través de una ventana de cuarzo en la parte superior del chip. Exponer la matriz a la luz ultravioleta restablece todos los bits almacenados y podría programarse nuevamente, un número limitado de veces. Una vez se utilizaron para BIOS de computadora, ya que "actualizarlo" significaba que la ROM solo tenía que borrarse y reprogramarse. Su retención es buena [1], sin embargo, son susceptibles de borrado accidental.

  • EEPROM (PROM eléctricamente borrable) fue el sucesor de EPROM al permitir que el borrado se realice eléctricamente , ya no requiere lámparas UV y quitar / reinstalar el IC. Estos también trabajaron más con bits que con bytes o con unidades de almacenamiento más grandes y fueron bastante limitados. La retención es bastante buena [2], pero cada bit aún ocupa un poco de espacio físico, lo que hace que grandes volúmenes de almacenamiento no sean prácticos.

  • FLASH ROM, es el sucesor de todos estos. Son una ROM en el sentido de que la escritura de datos es "permanente" (realidad: 10 a 50 años de retención [3] o algo así) pero se puede borrar y reprogramar. La mayor diferencia entre FLASH y EEPROM es que FLASH está optimizado para trabajar con bytes o datos (bloques / páginas), por lo que son mucho más rápidos que EEPROM. Esto les presta a roles de almacenamiento masivo más fácilmente de lo que lo haría una EEPROM, y es por eso que proliferan en el mercado de los medios extraíbles en la actualidad. También encontraron una manera de meter más bits en un área determinada, aumentando la densidad de almacenamiento. Sin embargo, como compensación, se reduce la durabilidad de cada bit.

Ahora, un microcontrolador PIC generalmente tiene memoria de código FLASH y, opcionalmente, un poco de EEPROM para almacenamiento de propósito general.

La principal diferencia entre estos en el PIC, y lo que usted quiere saber es: la resistencia de escritura / borrado de FLASH es aproximadamente 10,000 veces por bit. Después de eso, este bit estará "muerto" y ya no podrá usarse. La durabilidad de escritura / borrado de la EEPROM suele ser de 100.000 ciclos por bit. La retención parece disminuir con el número de ciclos de escritura / borrado, pero encontrar datos sobre esto es muy difícil.

[1] "[EPROM] retención en exceso de 5 años a 225 ° C". enlace pág. 1.

[2] "[Los dispositivos] en prueba han demostrado más de 10 años a 70ºC sobre proyección. Pero, la Agencia 1 también afirma que existe la posibilidad de tener una subpoblación de fallas tempranas dentro de la población total, que probablemente no represente más de 1 en 15 dispositivos 1 en 30. Se observó un comportamiento de retención de datos intermitente durante la prueba, pero no se comprende la causa de este comportamiento. " enlace pág. 3-4.

[3] "La no volatilidad [flash] implica al menos diez años de retención de carga". enlace pág. 7-8.

Entonces, la conclusión es que use FLASH para el código de su programa, ya que generalmente no cambia mucho (si es que lo hace) y hay mucho espacio para el programa (ya que es el tipo FLASH). Use la EEPROM Área para el almacenamiento de datos no volátiles, ya que tiene una mejor retención y aproximadamente 10 veces la durabilidad de FLASH.

    
respondido por el rdtsc
0

EEPROM es típicamente para almacenar datos como configuraciones y registros. Normalmente se puede borrar / escribir en pequeñas secciones. Por lo general, se puede escribir / borrar más veces que la memoria flash. Caro en términos de área de chips.

Flash se utiliza normalmente para la ejecución de código. Normalmente debe borrarse / escribirse en bloques grandes. El número de escrituras / borrados es típicamente mucho menor en comparación con la EEPROM. Normalmente es más barato producir en términos de área de troquelado.

Si está preocupado por quedarse sin espacio de código, es instructivo comparar el AT-Mega y el PIC32. Si está haciendo un montón de matemáticas enteras de 16 o 32 bits, o matemáticas de coma flotante, probablemente esté mejor con el PIC32. Esto es en términos de uso de memoria flash y velocidad de ejecución.

La parte ATMega va a utilizar menos bytes por instrucción en comparación con el PIC32. Una CPU de 32 bits generalmente usa más bytes por instrucción, debido a los tamaños de operandos más grandes. Por otro lado, una CPU de 8 bits a menudo necesitará muchas más instrucciones para hacer el mismo trabajo que una CPU de 32 bits.

Por ejemplo, una multiplicación de 32 bits x 32 bits con un resultado de 32 bits en una CPU de 32 bits son dos instrucciones de carga, una instrucción de multiplicación y una instrucción de almacenamiento. En una CPU de 8 bits, necesitaría al menos 8 instrucciones de carga, 16 multiplicaciones, varias adicionales con instrucciones detalladas y 4 instrucciones de almacenamiento. Por lo tanto, la reducción en el tamaño del código que obtiene en una CPU de 8 bits por cada código de operación se cancela por el aumento en el número de códigos de operación.

El PIC32 es una serie de procesadores bastante buena. El PIC32MX360F512L tiene 512K de flash, 32K EEPROM y una CPU de 80MHz de 32 bits. Si tuviera que elegir entre un ATMega y un PIC32, elegiría el PIC32.

    
respondido por el user4574

Lea otras preguntas en las etiquetas