¿Qué hace que la memoria flash eMMC sea viable en dispositivos móviles, pero no en PC?

qué-hace-la-memoria-flash-emmc-viable-en-dispositivos-móviles-pero-no-PC-00

El uso de memoria flash para ejecutar un sistema de escritorio, como Windows, se desaconsejó durante bastante tiempo. Pero, ¿qué la convirtió en una opción deseable y viable para dispositivos móviles? La publicación de preguntas y respuestas del superusuario de hoy tiene la respuesta a la pregunta de un lector curioso.

La sesión de preguntas y respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad.

La pregunta

El lector de superusuario RockPaperLizard quiere saber qué hace que la memoria flash eMMC sea viable en dispositivos móviles, pero no en PC:

Desde que se inventaron las unidades flash USB, la gente se ha preguntado si podrían ejecutar sus sistemas operativos en ellas. La respuesta siempre fue “no” porque la cantidad de escrituras requeridas por un sistema operativo las agotaría rápidamente.

A medida que los SSD se han vuelto más populares, la tecnología de nivelación del desgaste ha mejorado para permitir que los sistemas operativos se ejecuten en ellos. Varias tabletas, netbooks y otras computadoras delgadas usan memoria flash en lugar de un disco duro o SSD, y el sistema operativo se almacena en ella.

¿Cómo se volvió práctico esto de repente? ¿Suelen implementar tecnologías de nivelación del desgaste, por ejemplo?

¿Qué hace que la memoria flash eMMC sea viable en dispositivos móviles, pero no en PC?

La respuesta

Los colaboradores de superusuario Speeddymon y Journeyman Geek tienen la respuesta para nosotros. Primero, Speeddymon:

Todos los dispositivos de memoria flash, desde tabletas hasta teléfonos móviles, relojes inteligentes, SSD, tarjetas SD en cámaras y memorias USB, utilizan tecnología NVRAM. La diferencia está en la arquitectura NVRAM y en cómo el sistema operativo monta el sistema de archivos en cualquier medio de almacenamiento en el que se encuentre.

Para tabletas y teléfonos móviles Android, la tecnología NVRAM está basada en eMMC. Los datos que puedo encontrar sobre esta tecnología sugieren entre 3k y 10k ciclos de escritura. Desafortunadamente, nada de lo que he encontrado hasta ahora es definitivo, ya que Wikipedia está en blanco sobre los ciclos de escritura de esta tecnología. Todos los demás lugares que he mirado resultaron ser varios foros, así que difícilmente lo que yo llamaría una fuente confiable.

En aras de la comparación, los ciclos de escritura en otras tecnologías NVRAM, como los SSD, que usan tecnología NAND o NOR, están entre 10k y 30k.

Ahora, con respecto a la elección del sistema operativo de cómo montar el sistema de archivos. No puedo hablar sobre cómo lo hace Apple, pero para Android, el chip está dividido como lo estaría un disco duro. Tiene una partición del sistema operativo, una partición de datos y varias otras particiones propietarias, según el fabricante del dispositivo.

La partición raíz real vive dentro del gestor de arranque, que se incluye como un archivo comprimido (jffs2, cramfs, etc.) junto con el kernel, de modo que cuando se completa el inicio de la etapa 1 del dispositivo (generalmente la pantalla del logotipo del fabricante), entonces el kernel arranca y la partición raíz se monta simultáneamente como un disco RAM.

A medida que el sistema operativo se inicia, monta el sistema de archivos de la partición primaria (/ system, que es jffs2 en dispositivos anteriores a Android 4.0, ext2 / 3/4 en dispositivos desde Android 4.0 y xfs en los dispositivos más recientes) como de solo lectura, por lo que que no se pueden escribir datos en él. Por supuesto, esto se puede solucionar mediante el llamado «enraizamiento» de su dispositivo, que le da acceso como superusuario y le permite volver a montar la partición como lectura / escritura. Sus datos de «usuario» se escriben en una partición diferente en el chip (/ data, que sigue la misma convención que la anterior basada en la versión de Android).

Con cada vez más teléfonos móviles que abandonan las ranuras para tarjetas SD, podría pensar que alcanzará el límite del ciclo de escritura antes porque todos sus datos ahora se guardan en el almacenamiento eMMC en lugar de en una tarjeta SD. Afortunadamente, la mayoría de los sistemas de archivos detectan una escritura fallida en un área de almacenamiento determinada. Si falla una escritura, los datos se guardan silenciosamente en una nueva área de almacenamiento y el controlador del sistema de archivos acordona el área defectuosa (conocida como bloque defectuoso) para que los datos ya no se escriban allí en el futuro. Si una lectura falla, los datos se marcan como corruptos y se le indica al usuario que ejecute una verificación del sistema de archivos (o que verifique el disco), o el dispositivo verifica automáticamente el sistema de archivos durante el siguiente inicio.

De hecho, Google tiene una patente para detectar y manejar bloques defectuosos automáticamente: administrar bloques defectuosos en la memoria flash para tarjetas flash de datos electrónicos

Para ir más al grano, su pregunta sobre cómo esto de repente se volvió práctico no es la pregunta correcta. En primer lugar, nunca fue impráctico. Se desaconsejó encarecidamente instalar un sistema operativo (Windows) en un SSD (presumiblemente) debido a la cantidad de escrituras que realiza en un disco.

Por ejemplo, el registro recibe literalmente cientos de lecturas y escrituras por segundo, que se pueden ver con la herramienta Microsoft-SysInternals Regmon .

Se desaconsejó la instalación de Windows en SSD de primera generación porque con la falta de nivelación de desgaste, los datos escritos en el registro cada segundo (probablemente) finalmente alcanzaron a los primeros usuarios y dieron como resultado sistemas que no se pueden arrancar debido a la corrupción del registro.

Con tabletas, teléfonos móviles y prácticamente cualquier otro dispositivo integrado, no hay registro (los dispositivos Windows Embedded son excepciones, por supuesto) y, por lo tanto, no hay que preocuparse de que los datos se escriban constantemente en las mismas partes del medio flash.

Para los dispositivos Windows Embedded, como muchos de los quioscos que se encuentran en lugares públicos (como Walmart, Kroger, etc.) donde puede ver un BSOD aleatorio de vez en cuando, no hay mucha configuración que se pueda hacer ya que están prediseñados con configuraciones que están destinadas a no cambiar nunca. En la mayoría de los casos, el único momento en que se realizan los cambios es antes de que se escriba el chip. Todo lo que deba guardarse, como el pago a la tienda de comestibles, se realiza a través de la red en las bases de datos de la tienda en un servidor.

Seguido de la respuesta de Journeyman Geek:

La respuesta siempre fue “no” porque la cantidad de escrituras requeridas por un sistema operativo las agotaría rápidamente.

Finalmente se volvieron rentables para el uso general. Que el «desgaste» es la única preocupación es una suposición. Ha habido sistemas que funcionan con memoria de estado sólido durante un período de tiempo considerable. Muchas personas que construyeron computadoras para automóviles arrancaron con tarjetas CF (que eran eléctricamente compatibles con PATA y triviales de instalar en comparación con los discos duros PATA), y las computadoras industriales han tenido un almacenamiento basado en flash pequeño y resistente.

Dicho esto, no había muchas opciones para la persona promedio. Puede comprar una tarjeta CF cara y un adaptador para una computadora portátil, o encontrar un disco industrial pequeño y muy costoso en una unidad de módulo para una computadora de escritorio. No eran muy grandes en comparación con los discos duros contemporáneos (creo que los DOM IDE modernos superan los 8 GB o 16 GB). Estoy bastante seguro de que podría haber configurado las unidades de sistema de estado sólido mucho antes de que las SSD estándar se volvieran comunes.

Realmente no ha habido mejoras universales / mágicas en la nivelación del desgaste que yo sepa. Ha habido mejoras incrementales mientras nos alejábamos de los costosos SLC a MLC, TLC e incluso QLC junto con tamaños de proceso más pequeños (todos los cuales tienen un costo menor y un mayor riesgo de desgaste). Flash se ha vuelto mucho más barato.

También hubo algunas alternativas que no tenían problemas de desgaste. Por ejemplo, ejecutar todo el sistema desde una ROM (que posiblemente sea almacenamiento de estado sólido) y una RAM respaldada por batería, que utilizaban muchos SSD y dispositivos portátiles como Palm Pilot. Ninguno de estos es común hoy. Los discos duros se movieron en comparación con, por ejemplo, la RAM respaldada por batería (demasiado cara), los primeros dispositivos de estado sólido (algo caros) o los campesinos con banderas (nunca se dieron cuenta debido a la terrible densidad de datos). Incluso la memoria flash moderna es un descendiente de las eeproms de borrado rápido y las eeproms se han utilizado en dispositivos electrónicos para el almacenamiento de cosas como firmware durante siglos.

Los discos duros simplemente se encontraban en una agradable intersección de alto volumen (lo cual es importante), bajo costo y almacenamiento relativamente suficiente.

La razón por la que encuentra eMMC en las computadoras modernas de gama baja es que los componentes son relativamente baratos, lo suficientemente grandes (para sistemas operativos de escritorio) a ese costo y comparten elementos comunes con los componentes de teléfonos móviles, por lo que se producen a granel con una interfaz estándar. También dan gran densidad de almacenamiento por su volumen. Teniendo en cuenta que muchas de estas máquinas tienen una unidad insignificante de 32 GB o 64 GB, a la par con los discos duros de la mayor parte de hace una década, son una opción sensata en esta función.

Finalmente, estamos llegando al punto en el que puede almacenar una cantidad razonable de memoria de manera asequible y con velocidades razonables en eMMC y flash, por lo que la gente los elige.


¿Tiene algo que agregar a la explicación? Habla en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Consulte el hilo de discusión completo aquí .

Crédito de la imagen: Martin Voltri (Flickr)