O que torna a memória Flash eMMC viável em dispositivos móveis, mas não em PCs?

what-make-emmc-flash-memory-viável-in-mobile-devices-but-not-pcs-00

O uso de memória flash para rodar um sistema desktop, como o Windows, foi desaconselhado por algum tempo. Mas o que o tornou uma opção desejável e viável para dispositivos móveis? O post de perguntas e respostas do superusuário de hoje tem a resposta para a pergunta de um leitor curioso.

A sessão de perguntas e respostas de hoje chega até nós como cortesia do SuperUser – uma subdivisão do Stack Exchange, um grupo de sites de perguntas e respostas voltado para a comunidade.

A questão

O leitor de superusuário RockPaperLizard quer saber o que torna a memória flash eMMC viável em dispositivos móveis, mas não em PCs:

Desde que as unidades flash USB foram inventadas, as pessoas se perguntam se poderiam rodar seus sistemas operacionais nelas. A resposta era sempre “não” porque o número de gravações exigidas por um sistema operacional as desgastaria rapidamente.

À medida que os SSDs se tornaram mais populares, a tecnologia de redução de desgaste foi aprimorada para permitir que os sistemas operacionais funcionem neles. Vários tablets, netbooks e outros computadores compactos usam memória flash em vez de um disco rígido ou SSD, e o sistema operacional é armazenado nele.

Como isso de repente se tornou prático? Eles normalmente implementam tecnologias de nivelamento de desgaste, por exemplo?

O que torna a memória flash eMMC viável em dispositivos móveis, mas não em PCs?

A resposta

Os contribuidores SuperUser Speeddymon e Journeyman Geek têm a resposta para nós. Primeiro, Speeddymon:

Todos os dispositivos de memória flash, de tablets a telefones celulares, relógios inteligentes, SSDs, cartões SD em câmeras e pen drives USB usam tecnologia NVRAM. A diferença está na arquitetura NVRAM e como o sistema operacional monta o sistema de arquivos em qualquer meio de armazenamento em que esteja.

Para tablets e telefones celulares Android, a tecnologia NVRAM é baseada em eMMC. Os dados que posso encontrar nesta tecnologia sugerem entre 3k a 10k ciclos de gravação. Infelizmente, nada do que encontrei até agora é definitivo, já que a Wikipedia está em branco nos ciclos de gravação desta tecnologia. Todos os outros lugares que procurei eram vários fóruns, então dificilmente o que eu chamaria de fonte confiável.

Para fins de comparação, os ciclos de gravação em outra tecnologia NVRAM, como SSDs, que usam a tecnologia NAND ou NOR, estão entre 10k e 30k.

Agora, com relação à escolha do sistema operacional de como montar o sistema de arquivos. Não posso falar sobre como a Apple faz isso, mas para o Android, o chip é particionado como um disco rígido seria. Você tem uma partição de sistema operacional, uma partição de dados e várias outras partições proprietárias, dependendo do fabricante do dispositivo.

A partição raiz real fica dentro do gerenciador de inicialização, que é empacotado como um arquivo compactado (jffs2, cramfs, etc.) junto com o kernel, de modo que quando a inicialização do estágio 1 do dispositivo estiver concluída (a tela do logotipo do fabricante geralmente), então o kernel é inicializado e a partição raiz é montada simultaneamente como um disco RAM.

Conforme o sistema operacional é inicializado, ele monta o sistema de arquivos da partição primária (/ system, que é jffs2 em dispositivos anteriores ao Android 4.0, ext2 / 3/4 em dispositivos desde Android 4.0 e xfs nos dispositivos mais recentes) como somente leitura, portanto que nenhum dado pode ser gravado nele. Isso pode, é claro, ser contornado pelo chamado “enraizamento” do seu dispositivo, que lhe dá acesso como um superusuário e permite que você remonte a partição como leitura / gravação. Seus dados de “usuário” são gravados em uma partição diferente no chip (/ data, que segue a mesma convenção acima com base na versão Android).

Com mais e mais telefones celulares abandonando slots de cartão SD, você pode pensar que atingirá o limite do ciclo de gravação mais cedo porque todos os seus dados agora estão sendo salvos no armazenamento eMMC em vez de em um cartão SD. Felizmente, a maioria dos sistemas de arquivos detecta uma gravação com falha em uma determinada área de armazenamento. Se a gravação falhar, os dados serão salvos silenciosamente em uma nova área de armazenamento e a área danificada (conhecida como bloco inválido) será isolada pelo driver do sistema de arquivos para que os dados não sejam mais gravados lá no futuro. Se a leitura falhar, os dados serão marcados como corrompidos e o usuário será instruído a executar uma verificação do sistema de arquivos (ou verificar o disco) ou o dispositivo verificará automaticamente o sistema de arquivos durante a próxima inicialização.

Na verdade, o Google tem uma patente para detectar e lidar automaticamente com blocos defeituosos: Gerenciando blocos defeituosos na memória flash para cartão de dados eletrônicos flash

Para ir mais direto ao ponto, sua pergunta sobre como isso de repente se tornou prático não é a pergunta certa a se fazer. Em primeiro lugar, nunca foi impraticável. Foi fortemente desaconselhado instalar um sistema operacional (Windows) em um SSD (presumivelmente) devido ao número de gravações que ele faz em um disco.

Por exemplo, o registro recebe literalmente centenas de leituras e gravações por segundo, que podem ser vistas com a ferramenta Microsoft-SysInternals Regmon .

A instalação do Windows foi desaconselhada em SSDs de primeira geração porque, com a falta de nivelamento de desgaste, os dados gravados no registro a cada segundo (provavelmente) alcançaram os primeiros usuários e resultaram em sistemas não inicializáveis ​​devido à corrupção do registro.

Com tablets, telefones celulares e praticamente qualquer outro dispositivo embutido, não há registro (dispositivos Windows Embedded são exceções, é claro) e, portanto, não há preocupação de dados sendo constantemente gravados nas mesmas partes do meio flash.

Para dispositivos Windows Embedded, como muitos dos quiosques encontrados em locais públicos (como Walmart, Kroger, etc.) onde você pode ver um BSOD aleatório de vez em quando, não há muita configuração que possa ser feita, pois eles são pré-projetados com configurações que nunca devem ser alteradas. Na maioria dos casos, a única vez que as mudanças ocorrem é antes de o chip ser gravado. Tudo o que precisa ser salvo, como o seu pagamento ao supermercado, é feito pela rede para os bancos de dados da loja em um servidor.

Seguido pela resposta do Journeyman Geek:

A resposta era sempre “não” porque o número de gravações exigidas por um sistema operacional as desgastaria rapidamente.

Eles finalmente se tornaram econômicos para o uso comum. Esse “desgaste” é a única preocupação, é um pouco uma suposição. Existem sistemas operando com memória de estado sólido por um período considerável de tempo. Muitas pessoas que construíram computadores de carro inicializaram com cartões CF (que eram eletricamente compatíveis com PATA e fáceis de instalar em comparação com discos rígidos PATA) e computadores industriais tiveram armazenamento baseado em flash pequeno e robusto.

Dito isso, não havia muitas opções para a pessoa média. Você poderia comprar um cartão CF caro e um adaptador para laptop ou encontrar um disco industrial minúsculo e muito caro em uma unidade de módulo para um desktop. Eles não eram muito grandes em comparação com os discos rígidos contemporâneos (IDE DOMs modernos chegam a 8 GB ou 16 GB, eu acho). Tenho certeza de que você poderia ter configurado unidades de sistema de estado sólido antes que os SSDs padrão se tornassem comuns.

Até onde eu sei, não houve nenhuma melhoria universal / mágica no nivelamento de desgaste. Houve melhorias incrementais enquanto mudávamos de SLC caro para MLC, TLC e até mesmo QLC, juntamente com tamanhos de processo menores (todos com custo mais baixo com algum risco maior de desgaste). O Flash ficou muito mais barato.

Também havia algumas alternativas que não apresentavam problemas de desgaste. Por exemplo, rodar todo o sistema com uma ROM (que é indiscutivelmente armazenamento de estado sólido) e RAM com bateria, que muitos SSDs e dispositivos portáteis como o Palm Pilot usavam. Nada disso é comum hoje. Os discos rígidos balançaram em comparação com, digamos, RAM com bateria (muito cara), primeiros dispositivos de estado sólido (um pouco caros) ou camponeses com bandeiras (nunca pegaram devido à terrível densidade de dados). Mesmo a memória flash moderna é um descendente de eeproms de apagamento rápido e eeproms têm sido usados ​​em dispositivos eletrônicos para armazenamento de coisas como firmware por muito tempo.

Os discos rígidos simplesmente estavam em uma boa intersecção de alto volume (o que é importante), baixo custo e armazenamento relativamente suficiente.

O motivo pelo qual você encontra eMMCs em computadores modernos e simples é que os componentes são relativamente baratos, grandes o suficiente (para sistemas operacionais de desktop) a esse custo e compartilham semelhanças com componentes de telefones móveis, portanto, são produzidos em massa com uma interface padrão. Eles também fornecem grande densidade de armazenamento para seu volume. Considerando que muitas dessas máquinas têm uma unidade de 32 GB ou 64 GB insignificante, a par com os discos rígidos da maior parte da década atrás, eles são uma opção sensata nesta função.

Estamos finalmente chegando ao ponto em que você pode armazenar uma quantidade razoável de memória a um preço acessível e com velocidades razoáveis ​​em eMMCs e flash, e é por isso que as pessoas optam por eles.


Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui .

Recomendado:  Como criar perfis de família com Eero para limitar o acesso à Internet

Crédito da imagem: Martin Voltri (Flickr)