No. La memoria flash NAND no es adecuada para almacenar código que es ejecutado directamente por una CPU. Nand flash solo se puede utilizar para almacenar el código que primero se copia a la RAM y luego se ejecuta desde la RAM. Hay dos razones para esto: en primer lugar, el flash NAND no es accesible palabra por palabra; Se accede en bloques. En segundo lugar, los datos en 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 bits que se introducen en los datos. Esto no es un problema para el acceso de tipo de disco en el que los datos se leen y escriben con poca frecuencia y pueden repararse mediante algoritmos de corrección de errores intermedios. Pero ejecutando directamente desde la memoria flash y la memoria, unos pocos millones de ciclos de lectura pueden tomar solo un segundo.
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 una ROM real dentro del chip, para almacenar cargadores de arranque, etc. Esta ROM es a menudo una ROM de máscara que es realmente ROM, "Memoria de solo lectura", lo que significa que el usuario no puede escribir en absoluto. diseño de chips utilizando uno a través de la máscara. Otra alternativa, en lugar o adicionalmente, es PROM, Programmamble ROM, que consiste en transistores con emisores débiles que pueden quemarse uno por uno. Este tipo de bit de memoria se puede escribir una vez, pero no se puede borrar.
Información de fondo:
Para ejecutar el código, todos los procesadores requieren almacenamiento al que se puede acceder byte a byte. Hoy en día, más comúnmente esta memoria es la memoria caché L1 que se coloca "más cercana" al procesador en el bus de datos (de instrucción). Más lejos de la CPU puede haber otros tipos de memoria conectados a muchos tipos de buses.