16Aug

Vad gör eMMC Flash Memory Viable i mobila enheter, men inte datorer?

click fraud protection

Med hjälp av flashminne för att köra ett skrivbordssystem, som Windows, råddes det ganska länge. Men vad gjorde det till ett önskvärt och genomförbart alternativ för mobila enheter? Dagens SuperUser Q & A-inlägg har svaret på en nyfiken läsarens fråga.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsaren RockPaperLizard vill veta vad som gör eMMC-flashminne möjlig i mobila enheter, men inte PC:

Ända sedan USB-flashenheter uppfanns, har människor undrat sig om de kunde köra sina operativsystem på dem. Svaret var alltid "nej" eftersom antalet skrivningar som krävs av ett operativsystem skulle snabbt bära dem ut.

Eftersom SSD-enheter har blivit mer populära har slitstyrkan förbättrats för att operativsystem ska kunna köras på dem. Olika tabletter, netbooks och andra slimdatorer använder flashminne istället för en hårddisk eller SSD, och operativsystemet är lagrat på det.

instagram viewer

Hur blev detta plötsligt praktiskt? Genomför de typiskt slitstyrningstekniken, till exempel?

Vad gör eMMC flashminne möjlig i mobila enheter, men inte PC?

Svaret

SuperUser-bidragsgivare Speeddymon and Journeyman Geek har svaret för oss. Först upp, Speeddymon:

Alla flashminne enheter, från tabletter till mobiltelefoner, smarta klockor, SSD, SD-kort i kameror och USB-tummarna använder NVRAM-teknik. Skillnaden är i NVRAM-arkitekturen och hur operativsystemet monterar filsystemet på vilket lagringsmedium det är på.

För Android-tabletter och mobiltelefoner är NVRAM-tekniken eMMC-baserad. De data som jag kan hitta på denna teknik föreslår mellan 3k till 10k skrivcykler. Tyvärr är inget av det jag hittat hittills definitivt, eftersom Wikipedia är tomt på denna teknologins skrivcykler. Alla andra platser som jag har tittat råkade vara olika forum, så knappast vad jag skulle kalla en tillförlitlig källa.

För jämförelseskäl är skrivcyklerna på annan NVRAM-teknik som SSD, som använder NAND eller NOR-teknik, mellan 10k och 30k.

När det gäller operativsystemets val av hur man monterar filsystemet. Jag kan inte prata om hur Apple gör det, men för Android är chipet partitionerat som en hårddisk skulle vara. Du har en operativsystempartition, en datadisition och flera andra egna partitioner beroende på tillverkaren av enheten.

Den verkliga rotpartitionen lever inuti startläsaren, som är buntad som en komprimerad fil( jffs2, cramfs, etc.) tillsammans med kärnan, så att när enhetens steg 1-uppstart är klar( tillverkarens logoskärm vanligtvis), dåkärnan stövlar och rotpartitionen är samtidigt monterad som en RAM-skiva.

När operativsystemet startas upp monteras det primära partitionens filsystem( / system, vilket är jffs2 på enheter före Android 4.0, ext2 /3/ 4 på enheter sedan Android 4.0 och xfs på de senaste enheterna) som skrivskyddade så attingen data kan skrivas till den. Det kan naturligtvis arbetas med så kallad "rooting" på din enhet, vilket ger dig tillgång som en superanvändare och låter dig omforma partitionen som läs / skriv. Din "användar" -data skrivs till en annan partition på chipet( / data, som följer samma konvention som ovan baserat på Android-versionen).

Med fler och fler mobiltelefoner som slår ut SD-kortplatsen kanske du tror att du kommer att slå skrivcykellocket tidigare eftersom alla dina data nu sparas på eMMC-lagring istället för ett SD-kort. Lyckligtvis upptäcker de flesta filsystem en felaktig skrivning till ett visst lagringsområde. Om en skriv misslyckas sparas data tyst till ett nytt lagringsområde och det dåliga området( känt som ett dåligt block) slås av av filsystemdrivrutinen så att data inte längre skrivs där i framtiden. Om en läs misslyckas markeras data som korrupta och användaren berättas att köra en filsystemkontroll( eller kontrollera disken), eller enheten kontrollerar automatiskt filsystemet under nästa start.

I själva verket har Google patent för att automatiskt upptäcka och hantera dåliga block: Hantera dåliga block i flashminne för elektronisk datakort

För att få mer till stånd, är din fråga om hur detta plötsligt blev praktiskt inte rätt fråga att fråga. Det var aldrig opraktiskt i första hand. Det rekommenderades starkt att installera ett operativsystem( Windows) på en SSD( förmodligen) på grund av antalet skrivningar som den gör på en skiva.

Till exempel mottar registret bokstavligen hundratals läser och skriver per sekund, vilket kan ses med Microsoft-SysInternals Regmon Tool.

Installera Windows rådde mot SSD-enheter av första generationen, eftersom de data som skrivits till registret varje sekund( troligen) i slutändan hamnade i tidiga adoptrar och resulterade i ostartbara system på grund av registerkorruption.

Med tabletter, mobiltelefoner och nästan alla andra inbäddade enheter finns det inget register( Windows Embedded Devices är undantag, förstås) och det finns ingen oro för att data ständigt skrivs till samma delar av flashmediet.

För Windows-inbyggda enheter, som många av kioskerna som finns på offentliga platser( som Walmart, Kroger, etc.) där du kan se en slumpmässig BSOD från tid till annan finns det inte mycket konfiguration som kan göras sedanDe är förkonstruerade med konfigurationer som är avsedda att aldrig förändras. De enda ändringarna äger rum innan chipet är skrivet i de flesta fall. Allt som behöver sparas, till exempel din betalning till mataffären, görs över nätverket till butikens databaser på en server.

Följd av svaret från Journeyman Geek:

Svaret var alltid "nej" eftersom antalet skrivningar som krävs av ett operativsystem skulle snabbt bära dem ut.

De blev äntligen kostnadseffektiva för vanlig användning. Att "slitage" är det enda som berörs är lite av ett antagande. Det har funnits system som körs av solid state-minne under en lång tid. Många som byggde bilstartar startade av CF-kort( som var elektriskt kompatibla med PATA och trivial att installera jämfört med PATA-hårddiskar), och industriella datorer har haft liten, robust flashbaserad lagring.

Som sagt var det inte många alternativ för den genomsnittliga personen. Du kan köpa ett pricy CF-kort och en adapter för en bärbar dator, eller hitta en liten, väldigt pricy industridisk på en modulenhet för skrivbordet. De var inte så stora jämfört med moderna hårddiskar( moderna IDE DOMs toppade på 8GB eller 16GB tror jag).Jag är ganska säker på att du kunde ha fått solid state-systemdrivningar på plats innan standard SSD-filer blev vanliga.

Det har inte funnits några universella / magiska förbättringar i slitstyrning så vitt jag vet. Det har gjorts stegvisa förbättringar medan vi har flyttat från pricy SLC till MLC, TLC, och även QLC tillsammans med mindre processstorlekar( alla med lägre kostnad med lite högre risk för utslitning).Flash har blivit mycket billigare.

Det fanns också några alternativ som inte hade problem med slitage. Till exempel kör hela systemet av en ROM( vilket är en sannolikt solid state-lagring) och batterierad RAM, vilket många tidiga SSD-enheter och bärbara enheter som Palm Pilot använde. Inget av dessa är vanliga idag. Hårddiskar rockade jämfört med att säga batteribackad RAM( för dyr), tidiga solid state-enheter( lite pricy) eller bönder med flaggor( aldrig fångad på grund av hemsk datatäthet).Till och med modernt flashminne är en efterföljare av snabbavlägsna eeproms och eeproms har använts i elektroniska enheter för lagring av saker som firmware i åldrar.

Hårddiskar var helt enkelt på en bra skärningspunkt med hög volym( vilket är viktigt), låg kostnad och relativt tillräcklig lagring.

Anledningen till att du hittar eMMC i moderna, låga datorer är komponenterna är relativt billiga, tillräckligt stora( för stationära operativsystem) till den kostnaden och delar gemensamt med mobiltelefonkomponenter, så de produceras i bulk med ett standardgränssnitt. De ger också stor lagringstäthet för sin volym. Med tanke på att många av dessa maskiner har en smal 32 GB eller 64 GB-enhet, i nivå med hårddiskar från bättre delen av ett decennium sedan, är de ett förnuftigt alternativ i den här rollen.

Vi når äntligen upp den punkt där du kan lagra en rimlig mängd minne billigt och med rimliga hastigheter på eMMC och flash, varför folk går för dem.

Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.

Bildkrediter: Martin Voltri( Flickr)