¿Cuáles son los dispositivos de almacenamiento de datos más comunes en dispositivos electrónicos de consumo pequeños?

4

¿Cuáles son las formas estándar de almacenamiento de datos en pequeños productos electrónicos de consumo (enrutadores, teléfonos, etc.)? Para dispositivos simples, supongo que los microcontroladores con flash programable en el sistema son suficientes, pero, por ejemplo, en un teléfono inteligente, ¿habría una tarjeta micro-SD montada internamente o similar? ¿Dónde se almacenaría el SO, etc.?

    
pregunta oeeve

2 respuestas

5

Para elementos como los que usa como ejemplos, generalmente hay un chip flash NAND (o más de uno) que cuelga del procesador principal.

Para elementos más pequeños (por ejemplo, microondas), el código estará en un flash interno en el microcontrolador, o en aplicaciones de gran volumen muy sensibles al costo estará en la ROM, de nuevo generalmente en el mismo dado que el micro.

    
respondido por el Martin Thompson
4

Hay tres opciones típicas: flash interno, flash NAND externo y tarjetas micro-SD. La memoria flash evolucionó desde los primeros dispositivos EEPROM y los ha reemplazado, siendo más densos (y por lo tanto más baratos por byte). Los dispositivos de muy alto volumen pueden usar ROM, que no cubriré aquí ya que no tengo precios ni especificaciones. Funcionalmente, actuaría como memoria flash interna o externa, a excepción de que sean de solo lectura y no tengan problemas de resistencia.

Los IC flash NAND suelen ser un poco más caros que las tarjetas micro-SD de tamaño comparativo, solo porque estas últimas se fabrican en cantidades tan grandes que las economías de escala bajan el precio. Por ejemplo, un chip de 8 GB NAND flash (64 Gb) cuesta alrededor de $ 20, y una tarjeta SD de 8 GB cuesta $ 6. (Ni siquiera pude encontrar un IC EEPROM de 8 GB para comparación). Y, por supuesto, la memoria flash interna casi viene gratis, excepto que el costo del microcontrolador aumenta con el tamaño de la memoria flash.

Sin embargo, el tiempo de acceso para la tarjeta SD será más lento que el flash NAND, ya que se accede a la tarjeta SD utilizando una interfaz SPI de 2 cables (R / W) o una interfaz patentada de 4 cables, mientras que Los chips flash NAND suelen tener una interfaz paralela de 8 bits. El flash interno será el más rápido, ya que no se requiere una interfaz externa.

Dado que las tarjetas SD pueden formatearse en una PC, a menudo se configuran con un sistema de archivos como FAT-32, lo que facilita la copia de archivos desde la PC y luego el acceso desde un microcontrolador que contiene la FAT necesaria. 32 biblioteca. (Y, por supuesto, el microcontrolador también puede escribir nuevos archivos, crear directorios, etc. si lo desea).

Otra diferencia es la nivelación del desgaste. Las tarjetas SD de marca suelen incluir nivelación de desgaste (todas las tarjetas SD tienen un procesador en su interior), mientras que los chips flash NAND no lo hacen y su aplicación necesita realizar nivelación de desgaste para prolongar la vida útil del dispositivo. (Borrar / escribir es mucho más lento que leer todos estos dispositivos).

Las tarjetas SD normalmente tendrán la mayor resistencia en términos de ciclos de borrado / escritura (típicamente 100,000). Los flashes internos y los chips flash NAND suelen tener muchos menos ciclos de borrado / escritura, a menudo medidos en miles o decenas de miles. Por lo tanto, no son buenos sustitutos para un disco duro.

(added)

Las tarjetas SD solo se pueden utilizar para almacenar datos; no se puede ejecutar el código de ellos. Sin embargo, si el procesador puede ejecutar código fuera de la RAM ( arquitectura de Von Neumann ), uno podría cargar los programas según sea necesario desde la tarjeta SD. en la memoria RAM y ejecutarlo allí. (Nota: la mayoría de los microcontroladores son arquitectura de Harvard y no pueden ejecutar código desde la RAM.)

El flash externo se puede usar para ejecutar código solo si el procesador tiene una interfaz de memoria externa que específicamente permite esto, como muchos microprocesadores ARM. Si el acceso es solo a través de un puerto paralelo de propósito general, entonces el flash externo solo se puede utilizar para datos.

El flash interno es al revés: generalmente se utiliza para almacenar y ejecutar código de programa, y la mayoría de los microcontroladores de arquitectura de Harvard deben tener medios especiales (como una "ventana" de datos) que permitan el acceso al flash interno como un área de datos (que no es parte de un área de const de programa).

Para responder a su última pregunta, casi siempre se incluiría un sistema operativo en el área interna de programación del microcontrolador. Pero podría estar contenido en un flash externo si el procesador lo permite. Si el sistema operativo necesita cargar controladores según sea necesario, estos podrían almacenarse en una tarjeta SD (o flash externo) y cargarse en la RAM si hay suficiente espacio y el procesador puede funcionar sin RAM, o grabarse en una Área de flash interno reservada para los conductores.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas