16Aug
El uso de la 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 SuperUser Q & A de hoy tiene la respuesta a la pregunta de un lector curioso.
Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad.
El lector
SuperUser Pregunta RockPaperLizard desea saber qué hace que la memoria flash eMMC sea viable en dispositivos móviles, pero no en PC:
Desde que se inventaron 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 las SSD se han vuelto más populares, la tecnología de nivelación de desgaste ha mejorado para permitir que los sistemas operativos se ejecuten en ellas. Varias tabletas, netbooks y otras computadoras delgadas usan memoria flash en lugar de disco duro o SSD, y el sistema operativo está almacenado en ella.
¿Cómo se hizo esto de repente práctico? Por lo general, ¿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
SuperUser Contribuidores 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 usan 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 esté.
Para tabletas Android y teléfonos móviles, la tecnología NVRAM está basada en eMMC.Los datos que puedo encontrar en esta tecnología sugieren entre 3k a 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 que he visto pasaron a ser varios foros, por lo que difícilmente sería lo que yo llamaría una fuente confiable.
Por razones 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 sobre cómo lo hace Apple, pero para Android, el chip está dividido como lo haría un disco duro. Tiene una partición de 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 agrupa como un archivo comprimido( jffs2, cramfs, etc.) junto con el kernel, de modo que cuando se completa el arranque de la etapa 1 del dispositivo( normalmente la pantalla del logotipo del fabricante), elkernel boots y la partición raíz se monta simultáneamente como un disco RAM.
A medida que el sistema operativo arranca, 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 para queno se pueden escribir datos en él. Esto puede, por supuesto, solucionarse mediante el llamado "enraizamiento" de su dispositivo, que le da acceso como superusuario y le permite volver a montar la partición como de 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 de la tarjeta SD, es posible que piense que alcanzará el límite del ciclo de escritura antes porque todos sus datos ahora se guardan en el almacenamiento de 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 área defectuosa( conocida como bloque defectuoso) queda acordonada por el controlador del sistema de archivos para que los datos ya no se escriban allí en el futuro. Si falla una lectura, los datos se marcan como corruptos y se le pide al usuario que ejecute una comprobación del sistema de archivos( o compruebe el disco), o el dispositivo verifica automáticamente el sistema de archivos durante el próximo inicio.
Como cuestión de hecho, Google tiene una patente para detectar y manejar automáticamente los bloques defectuosos: Gestión de bloques defectuosos en memoria flash para tarjeta de memoria electrónica
Para ir más al grano, su pregunta sobre cómo esto se volvió repentinamente práctico no es la pregunta correcta. Nunca fue poco práctico en primer lugar. Se recomendó encarecidamente que no se instale un sistema operativo( Windows) en una 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, lo que se puede ver con la herramienta Regmon de Microsoft-SysInternals.
Se desaconsejó instalar Windows en las SSD de primera generación porque con la falta de nivelación del desgaste, los datos escritos en el registro cada segundo( probablemente) finalmente alcanzaron a los primeros usuarios y resultaron en sistemas no arrancables debido a la corrupción del registro.
Con tabletas, teléfonos móviles y casi cualquier otro dispositivo integrado, no hay registro( los dispositivos Windows Embedded son excepciones, por supuesto) y, por lo tanto, no hay preocupación de que los datos se escriban constantemente en las mismas partes del medio flash.
Para dispositivos Windows Embedded, como muchos de los quioscos que se encuentran en lugares públicos( como Walmart, Kroger, etc.) donde puede ver un BSOD al azar de vez en cuando, no hay una gran cantidad de configuración que se puede hacer desdeestán prediseñados con configuraciones que nunca se modificarán. Los únicos cambios de tiempo tienen lugar antes de que se escriba el chip en la mayoría de los casos. Todo lo que necesita ser guardado, 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. Ese "desgaste" es la única preocupación, es una pequeña suposición. Ha habido sistemas que se ejecutan en la memoria de estado sólido durante un período considerable de tiempo. Muchas personas que fabricaban computadoras automotrices arrancaron con tarjetas CF( que eran eléctricamente compatibles con PATA y triviales de instalar en comparación con las unidades de disco duro PATA), y las computadoras industriales han tenido almacenamiento basado en flash pequeño y resistente.
Dicho esto, no había muchas opciones para la persona promedio. Podría comprar una tarjeta CF y un adaptador para una computadora portátil, o encontrar un pequeño disco industrial muy caro en una unidad de módulo para una computadora de escritorio. No eran muy grandes en comparación con los discos duros contemporáneos( los DOM IDE modernos superan los 8GB o 16GB, creo).Estoy bastante seguro de que podría haber conseguido que las unidades del sistema de estado sólido se configuraran antes de que las SSD estándar se volvieran comunes.
Hasta donde yo sé, no ha habido ninguna mejora universal / mágica en la nivelación del desgaste. Ha habido mejoras incrementales mientras nos alejamos de SLC caro para MLC, TLC e incluso QLC junto con tamaños de proceso más pequeños( todos los cuales reducen el costo con 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 fuera de una ROM( que es sin duda el almacenamiento de estado sólido) y la memoria RAM con respaldo de batería, que muchos SSD antiguos y dispositivos portátiles como el Palm Pilot utilizan. Ninguno de estos son comunes hoy en día. Los discos duros oscilaron en comparación con, por ejemplo, la RAM con respaldo de batería( demasiado costosa), los dispositivos de estado sólido iniciales( algo costosos) o los campesinos con banderas( nunca captados debido a la terrible densidad de datos).Incluso la memoria flash moderna es un descendiente de los eeproms de borrado rápido y los eeproms se han usado en dispositivos electrónicos para almacenar cosas como el firmware por años.
Los discos duros simplemente se encontraban en una buena intersección de alto volumen( que es importante), bajo costo y un almacenamiento relativamente suficiente.
La razón por la que encuentra eMMC en computadoras modernas 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 teléfonos móviles, por lo que se producen a granel con una interfaz estándar. También dan una gran densidad de almacenamiento para su volumen. Teniendo en cuenta que muchas de estas máquinas tienen una unidad miserable de 32 GB o 64 GB, a la par con los discos duros de la mayor parte de la década pasada, 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 eMMC y flash, por lo que las personas los buscan.
¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.
Crédito de imagen: Martin Voltri( Flickr)