16Aug

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

O uso de memória flash para executar um sistema de desktop, como o Windows, foi consertado durante algum tempo. Mas o que tornou uma opção desejável e viável para dispositivos móveis? O super-usuário Q & Uma publicação tem a resposta para a pergunta de um leitor curioso.

Pergunta de hoje e amp;A sessão de atendimento chega a cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q & A.

O questionário

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

Desde que as unidades flash USB foram inventadas, as pessoas se perguntaram se poderiam executar seus sistemas operacionais nelas. A resposta sempre foi "não", porque o número de gravações exigidas por um sistema operacional rapidamente os desgastaria.

À medida que os SSD se tornaram mais populares, a tecnologia de nivelamento do desgaste melhorou para permitir que os sistemas operacionais sejam executados neles. Vários comprimidos, netbooks e outros computadores finos usam memória flash em vez de um disco rígido ou SSD, e o sistema operacional está armazenado nele.

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

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

A resposta

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

Todos os dispositivos de memória flash, desde tablets até telefones celulares, relógios inteligentes, SSDs, cartões SD em câmeras e unidades USB usam a 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 ele esteja.

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

Por razões de comparação, os ciclos de gravação em outra tecnologia NVRAM, como SSDs, que utilizam tecnologia NAND ou NOR, estão entre 10k e 30k.

Agora, em relação à escolha do sistema operacional de como montar o sistema de arquivos. Não consigo falar sobre como a Apple faz isso, mas para o Android, o chip é dividido como um disco rígido seria. Você tem uma partição do 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 vive dentro do carregador de inicialização, que é empacotado como um arquivo comprimido( jffs2, cramfs, etc.) junto com o kernel, de modo que quando o arranque do estágio 1 do dispositivo estiver completo( a tela do logotipo do fabricante geralmente), então okernel boots e a partição raiz é montada simultaneamente como um disco RAM.

À medida que o sistema operacional é inicializado, ele monta o sistema de arquivos da partição principal( / sistema, que é jffs2 em dispositivos antes do Android 4.0, ext2 /3/ 4 em dispositivos desde Android 4.0 e xfs nos dispositivos mais recentes) como somente leitura para quenenhum dado pode ser escrito. Isso pode, naturalmente, ser trabalhado em torno do chamado "rooteamento" de seu dispositivo, o que lhe dá acesso como super usuário e permite que você remonte a partição como leitura / gravação. Os dados do "usuário" são escritos em uma partição diferente no chip( / data, que segue a mesma convenção acima do que a versão Android).

Com mais e mais telefones celulares que abandonam os slots para cartões SD, você pode pensar que você atingirá o limite de ciclo de gravação mais cedo porque todos os seus dados agora estão sendo guardados no armazenamento eMMC em vez de um cartão SD.Felizmente, a maioria dos sistemas de arquivos detecta uma gravação falha em uma determinada área de armazenamento. Se uma gravação falhar, os dados são guardados silenciosamente em uma nova área de armazenamento e a área ruim( conhecida como bloco ruim) é desconectada pelo driver do sistema de arquivos para que os dados não sejam escritos lá no futuro. Se uma leitura falhar, os dados são marcados como corruptos e o usuário é solicitado a executar uma verificação do sistema de arquivos( ou verificar o disco), ou o dispositivo verifica automaticamente o sistema de arquivos durante a próxima inicialização.

De fato, a Google possui uma patente para detecção e manipulação automática de blocos defeituosos: gerenciamento de blocos defeituosos na memória flash para cartão eletrônico de dados

Para chegar mais ao ponto, sua pergunta sobre como isso de repente tornou-se prática não é a pergunta certa a perguntar. Nunca foi impraticável em primeiro lugar. Foi fortemente aconselhável contra a instalação de um sistema operacional( Windows) em um SSD( presumivelmente) devido ao número de gravações que faz em um disco.

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

A instalação do Windows foi aconselhada contra os SSDs de primeira geração porque, com a falta de nivelamento do desgaste, os dados escritos no registro a cada segundo( provavelmente) finalmente alcançaram os adotadores precoce e resultaram em sistemas não inicializáveis ​​devido à corrupção do registro.

Com tablets, telefones celulares e praticamente qualquer outro dispositivo incorporado, não há registro( os dispositivos Windows Embedded são exceções, é claro) e, portanto, não há preocupações de dados constantemente sendo 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 tempos em tempos, não há muita configuração que possa ser feita desdeeles são pré-concebidos com configurações que se destinam a nunca mudar. As únicas mudanças de tempo ocorrem antes do chip ser escrito na maioria dos casos. Tudo o que precisa ser salvo, como seu pagamento para o supermercado, é feito através da rede para os bancos de dados da loja em um servidor.

Seguido pela resposta do Journeyman Geek:

A resposta foi sempre "não" porque o número de gravações exigidas por um sistema operacional rapidamente os desgastaria.

Eles finalmente se tornaram econômicos para o uso convencional. Esse "desgaste" é a única preocupação é um pouco de uma suposição. Houve sistemas que funcionavam com memória de estado sólido durante um período considerável de tempo. Muitas pessoas que construíram carros-puters inicializaram os cartões CF( que eram eletricamente compatíveis com PATA e triviais para instalar em comparação com os discos rígidos PATA), e os computadores industriais tiveram armazenamento pequeno e robusto baseado em flash.

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

Não houve realmente nenhuma melhoria universal / mágica no nível de desgaste, tanto quanto eu sei. Houve melhorias incrementais enquanto estamos nos afastando do SLC prático para MLC, TLC e até mesmo QLC, juntamente com tamanhos de processo menores( todos os quais com menor custo com algum risco maior de desgaste).O Flash ficou muito mais barato.

Existem também algumas alternativas que não apresentaram problemas de desgaste. Por exemplo, executando o sistema inteiro fora de uma ROM( o que é indiscutivelmente armazenamento em estado sólido) e RAM com bateria, que muitos SSDs e dispositivos portáteis como o Palm Pilot usaram. Nada disso é comum hoje. Os discos rígidos foram balançados em comparação, digamos, RAM com respaldo de bateria( muito caro), dispositivos antigos de estado sólido( um pouco caro) ou camponeses com bandeiras( nunca capturados devido à terrível densidade de dados).Mesmo a memória flash moderna é um descendente de eeproms de apagamento rápido e os eeproms foram usados ​​em dispositivos eletrônicos para o armazenamento de coisas como o firmware por idades. As unidades de disco rígido

simplesmente estavam em uma boa interseção de alto volume( o que é importante), baixo custo e armazenamento relativamente suficiente.

O motivo pelo qual você encontra os eMMCs em computadores modernos e de baixa qualidade é que os componentes são relativamente baratos, grandes o suficiente( para sistemas operacionais de desktop) a esse custo e compartilham comunicações com componentes de celulares, de modo que são produzidos em massa com uma interface padrão. Eles também dão grande densidade de armazenamento para o seu volume. Considerando que muitas dessas máquinas possuem uma movimentação insignificante de 32GB ou 64GB, a par com discos rígidos da melhor parte de uma década atrás, eles são uma opção sensata nesse papel.

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

Tem alguma coisa a adicionar à explicação? Som desligado nos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.

Crédito de Imagem

: Martin Voltri( Flickr)