Página principal » cómo » ¿Qué hace que la memoria flash eMMC sea viable en dispositivos móviles pero no para PC?

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

    El uso de memoria flash para ejecutar un sistema de escritorio, como Windows, fue desaconsejado durante bastante tiempo. ¿Pero qué lo hizo una opción deseable y viable para dispositivos móviles? La publicación de preguntas y respuestas de SuperUser 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 SuperUser 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, las personas se han 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 está almacenado en él.

    ¿Cómo de repente se volvió práctico? ¿Normalmente implementan tecnologías de nivelación de 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 SuperUser Speeddymon y Journeyman Geek tienen la respuesta para nosotros. En primer lugar, Speeddymon:

    Todos los dispositivos de memoria flash, desde tabletas a teléfonos móviles, relojes inteligentes, SSD, tarjetas SD en cámaras y unidades de memoria 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 en los ciclos de escritura de esta tecnología. Todos los otros lugares en los que he mirado son varios foros, por lo que casi no lo llamaría una fuente confiable.

    Para fines de comparación, los ciclos de escritura en otras tecnologías NVRAM como 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 de cómo lo hace Apple, pero para Android, el chip se divide como si fuera un disco duro. Tiene una partición del sistema operativo, una partición de datos y varias otras particiones propietarias dependiendo del 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 el arranque de la etapa 1 del dispositivo está completo (generalmente la pantalla con el logotipo del fabricante), el kernel arranca y la partición raíz se monta simultáneamente como un disco RAM.

    A medida que se inicia el sistema operativo, 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 últimos dispositivos) como de solo lectura. Que no se puede escribir ningún dato. 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 se guardarán 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, entonces los datos se guardan de forma silenciosa 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 revise el disco), o que el dispositivo verifique automáticamente el sistema de archivos durante el próximo arranque.

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

    Para llegar al punto, su pregunta sobre cómo esto se convirtió de repente en práctica no es la pregunta correcta. Nunca fue impracticable en primer lugar. Se recomendó encarecidamente que no se instale 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 Tool..

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

    Con las tabletas, los teléfonos móviles y prácticamente cualquier otro dispositivo integrado, no hay registro (los dispositivos con 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 pre-diseñados con configuraciones que están destinadas a nunca cambiar. La única vez que se realizan cambios es antes de que el chip se escriba en la mayoría de los casos. Todo lo que deba guardarse, como su pago a la tienda de comestibles, se realiza a través de la red a las bases de datos de la tienda en un servidor.

    Seguido por 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 "desgaste" es la única preocupación es un poco de una suposición. Ha habido sistemas que se ejecutan fuera de la memoria de estado sólido durante un período de tiempo considerable. Muchas de las personas que construyeron automóviles se arrancaron con tarjetas CF (que eran eléctricamente compatibles con PATA y trivial de instalar en comparación con los discos duros PATA), y las computadoras industriales tienen un pequeño y robusto almacenamiento basado en flash.

    Dicho esto, no había muchas opciones para la persona promedio. Usted podría comprar una tarjeta CF costosa y un adaptador para una computadora portátil, o encontrar un pequeño disco industrial 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 IDE DOM modernos superan los 8GB o 16GB). Estoy bastante seguro de que podría haber configurado las unidades del sistema de estado sólido mucho antes de que las unidades estándar de disco estándar (SSD) se hicieran comunes.

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

    También hubo algunas alternativas que no tuvieron problemas de desgaste. Por ejemplo, ejecutar todo el sistema desde una ROM (que es posiblemente un almacenamiento de estado sólido) y una memoria RAM con respaldo de batería, que usaban muchos SSD y dispositivos portátiles antiguos como el Palm Pilot. Ninguno de estos son comunes hoy en día. Los discos duros oscilaron en comparación con, por ejemplo, RAM respaldada por batería (demasiado costosa), dispositivos de estado sólido tempranos (algo caros) o campesinos con banderas (nunca se prendieron debido a la terrible densidad de datos). Incluso la memoria flash moderna es un descendiente de eeproms de borrado rápido y eeproms se han utilizado en dispositivos electrónicos para el almacenamiento de cosas como el firmware durante años.

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

    La razón por la que encuentra los eMMC en computadoras modernas y de bajo costo es que los componentes son relativamente baratos, lo suficientemente grandes (para sistemas operativos de escritorio) a ese costo y comparten características comunes con los componentes de los teléfonos móviles, por lo que se producen en grandes cantidades 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 de 32 GB o 64 GB, a la par con los discos duros de la mayor parte de una década atrás, son una opción sensata en este rol..

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


    ¿Tienes algo que agregar a la explicación? Apaga el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.

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