¿Es la ROM de un MCU NAND FLASH?

Entiendo que el código binario se almacena en el área ROM de una MCU. Por lo general, la mayoría de las MCU tienen EEPROM FLASH. ¿Es este realmente el almacenamiento FLASH tipo NAND que encontramos en la mayoría de los SSD?

Si no es así, ¿cuáles son las diferencias?

Respuestas (2)

No. La memoria flash NAND no es adecuada para almacenar código que ejecuta directamente una CPU. Nand flash solo se puede usar para almacenar código que primero se copia en la RAM y luego se ejecuta desde la RAM. Esto se debe a dos razones: en primer lugar, no se puede acceder a la memoria flash NAND palabra por palabra; se accede en bloques. En segundo lugar, los datos en los flashes NAND son en realidad bastante volátiles y solo leer un bloque de datos unos pocos millones de veces da como resultado errores de bit en los datos. Esto no es un problema para el acceso al tipo de disco donde los datos se leen y escriben con poca frecuencia y pueden repararse mediante algoritmos de corrección de errores en el medio. Pero al ejecutarse directamente desde la memoria flash nand, unos pocos millones de ciclos de lectura pueden tomar solo un segundo más o menos.

Si los códigos se ejecutan directamente desde un chip flash, ese chip debe ser un chip flash NOR. La mayoría de los microcontroladores también incluyen ROM real dentro del chip, para almacenar cargadores de arranque, etc. diseño de chip usando uno a través de máscara. Otra alternativa, en lugar o adicionalmente, es PROM, Programmamble ROM que consiste en transistores con emisores débiles que se pueden quemar uno por uno. Este tipo de bit de memoria puede escribirse una vez, pero no borrarse.

Algunos antecedentes:

Para ejecutar el código, todos los procesadores requieren almacenamiento al que se puede acceder byte por byte. Hoy en día, lo más común es que esta memoria sea la caché RAM L1 que se coloca "más cerca" del procesador en el bus de datos (de instrucciones). Más lejos de la CPU puede haber otros tipos de memoria conectados a muchos tipos de buses.

Si está preguntando sobre MCU específico, sería útil saber cuál. Algunos de ellos combinan diferentes tipos de almacenamiento no volátil. EEPROM y Flash son diferentes tipos de memoria. Por ejemplo, los (actualmente) populares microcontroladores de la serie Tiva C de TIcombinan memorias EEPROM y FLASH, mientras que FLASH se usa principalmente para el almacenamiento binario ejecutable (pero no se limita a él) y la EEPROM se usa para el almacenamiento de datos específicos de la aplicación. Que los chips específicos tengan flash NOR en lugar de NAND, lo que es beneficioso para las MCU, especialmente las limitadas en RAM, ya que las memorias NOR generalmente permiten la obtención y ejecución directa de instrucciones de la CPU, lo que no es el caso de la NAND. Cuando un programa se almacena en NAND, no es ejecutable y debe copiarse a la RAM para poder ejecutarlo. Pero algunos MCU lo están usando de todos modos, principalmente aquellos diseñados para funcionar con RAM extendida externamente.

La EEPROM de la serie Tiva C es en realidad un banco de memoria flash NOR con lógica de control adicional.
@AdamHaun ¿Puede señalar dónde se puede encontrar esta información, por favor?
Mire bajo el encabezado Teoría de la operación en la sección 8.2.4.1 de la hoja de datos (página 551). Tenga en cuenta la mención de borrado de sector, que es la característica definitoria de flash. Esta es una descripción de la emulación de EEPROM de hardware. Además, trabajé en el nodo de proceso de 65 nm en el que se fabrican los chips Tiva C, y puedo decirles que no hay una EEPROM borrable de bytes real allí. :-)
@AdamHaun Ok, esa es una información interesante, no estoy seguro de cuán útil es :) Gracias.