Å bruke flashminne til å kjøre et stasjonært system, som Windows, ble frarådet i ganske lang tid. Men hva gjorde det til et ønskelig og levedyktig alternativ for mobile enheter? Dagens SuperUser-spørsmål og svar har svaret på en nysgjerrig leserspørsmål.
Dagens spørsmål og svar-økt kommer til oss med tillatelse fra SuperUser - en underavdeling av Stack Exchange, en samfunnsdrevet gruppe av spørsmål og svar-nettsteder.
Spørsmålet
SuperUser-leser RockPaperLizard vil vite hva som gjør eMMC-flashminne levedyktig i mobile enheter, men ikke PCer:
Helt siden USB-minnepinner ble oppfunnet, har folk lurt på om de kunne kjøre operativsystemene sine på dem. Svaret var alltid "nei" fordi antall skrivinger som kreves av et operativsystem raskt ville slite dem.
Etter hvert som SSD-er har blitt mer populære, har slitasjeutjevningsteknologien blitt bedre for å la operativsystemene kjøre på dem. Ulike nettbrett, netbooks og andre slanke datamaskiner bruker flashminne i stedet for en harddisk eller SSD, og operativsystemet er lagret på det.
Hvordan ble dette plutselig praktisk? Implementerer de for eksempel slitestyrkingsteknologier?
Hva gjør eMMC-flashminne levedyktig i mobile enheter, men ikke PC-er?
Svaret
SuperUser-bidragsytere Speeddymon og Journeyman Geek har svaret for oss. Først opp, Speeddymon:
Alle flash-minneenheter, fra nettbrett til mobiltelefoner, smarte klokker, SSD-er, SD-kort i kameraer og USB-minnepinner bruker NVRAM-teknologi. Forskjellen er i NVRAM-arkitekturen og hvordan operativsystemet monterer filsystemet på hvilket lagringsmedium det er på.
For Android-nettbrett og mobiltelefoner er NVRAM-teknologien eMMC-basert. Dataene jeg kan finne på denne teknologien antyder mellom 3k og 10k skrivesykluser. Dessverre er ingenting av det jeg har funnet så langt definitivt, ettersom Wikipedia er blank på denne teknologiens skrivesykluser. Alle andre steder jeg har sett på, var tilfeldigvis forskjellige fora, så neppe det jeg vil kalle en pålitelig kilde.
Til sammenligning er skrivesyklusene på annen NVRAM-teknologi, for eksempel SSD-er, som bruker NAND- eller NOR-teknologi, mellom 10k og 30k.
Nå, om operativsystemets valg av hvordan du monterer filsystemet. Jeg kan ikke snakke om hvordan Apple gjør det, men for Android er brikken partisjonert slik en harddisk ville vært. Du har en operativsystempartisjon, en datapartisjon og flere andre proprietære partisjoner, avhengig av produsenten av enheten.
Den virkelige rotpartisjonen lever inne i bootloader, som er samlet som en komprimert fil (jffs2, cramfs, etc.) sammen med kjernen, slik at når enhetens trinn 1-oppstart er fullført (produsentens logoskjerm vanligvis), så kjernen støvler og rotpartisjonen monteres samtidig som en RAM-disk.
Når operativsystemet starter opp, monterer det primærpartisjonens filsystem (/ system, som er jffs2 på enheter før Android 4.0, ext2 / 3/4 på enheter siden Android 4.0, og xfs på de nyeste enhetene) som skrivebeskyttet så at ingen data kan skrives til den. Dette kan selvfølgelig bearbeides med såkalt “rooting” av enheten din, som gir deg tilgang som superbruker og lar deg montere partisjonen på nytt som lese / skrive. Dine “bruker” -data skrives til en annen partisjon på brikken (/ data, som følger samme konvensjon som ovenfor basert på Android-versjonen).
Med flere og flere mobiltelefoner som slipper SD-kortspor, kan du tro at du vil slå skrivesyklushetten tidligere fordi alle dataene dine nå lagres i eMMC-lagring i stedet for et SD-kort. Heldigvis oppdager de fleste filsystemer en mislykket skriving til et gitt lagringsområde. Hvis en skriving mislykkes, lagres dataene stille i et nytt lagringsområde, og det dårlige området (kjent som en dårlig blokk) blir sperret av filsystemdriveren, slik at data ikke lenger skrives der i fremtiden. Hvis en lesing mislykkes, blir dataene merket som korrupte, og enten blir brukeren bedt om å kjøre en filsystemsjekk (eller sjekke disk), eller så sjekker enheten automatisk filsystemet under neste oppstart.
Faktisk har Google patent for automatisk å oppdage og håndtere dårlige blokkeringer: Administrere dårlige blokkeringer i flashminne for elektronisk datakort
For å komme mer til poenget er ikke spørsmålet ditt om hvordan dette plutselig ble praktisk, det rette spørsmålet å stille. Det var i utgangspunktet aldri upraktisk. Det ble sterkt frarådet å installere et operativsystem (Windows) på en SSD (antagelig) på grunn av antall skrivinger det gjør til en disk.
For eksempel mottar registeret bokstavelig talt hundrevis av lese og skriv per sekund, som kan sees med Microsoft-SysInternals Regmon-verktøy .
Installasjon av Windows ble frarådet på første generasjons SSD-er, fordi dataene som ble skrevet til registret hvert sekund (sannsynlig) til slutt fanget opp til tidlige brukere og resulterte i uoppstartbare systemer på grunn av korrupsjon i registret.
Med nettbrett, mobiltelefoner og stort sett alle andre innebygde enheter, er det ikke noe register (Windows-innebygde enheter er selvfølgelig unntak), og det er derfor ingen bekymring for at data hele tiden blir skrevet til de samme delene av blitsmediet.
For Windows-innebygde enheter, for eksempel mange av kioskene som finnes på offentlige steder (som Walmart, Kroger, etc.) der du kanskje ser en tilfeldig BSOD fra tid til annen, er det ikke så mye konfigurasjon som kan gjøres siden de er pre-designet med konfigurasjoner som er ment å aldri endre seg. Den eneste gangen endringene finner sted er før brikken er skrevet i de fleste tilfeller. Alt som må lagres, for eksempel betalingen din til matbutikken, gjøres over nettverket til butikkens databaser på en server.
Etterfulgt av svaret fra Journeyman Geek:
Svaret var alltid "nei" fordi antall skrivinger som kreves av et operativsystem raskt ville slite dem.
De ble til slutt kostnadseffektive for vanlig bruk. At "slitasje" er den eneste bekymringen er litt av en antagelse. Det har vært systemer som kjører av solid state-minne i en betydelig periode. Mange mennesker som bygde bil-putere startet av CF-kort (som var elektrisk kompatible med PATA og trivielle å installere sammenlignet med PATA-harddisker), og industrielle datamaskiner har hatt liten, robust flashbasert lagring.
Når det er sagt, var det ikke mange alternativer for den gjennomsnittlige personen. Du kan kjøpe et dyrt CF-kort og en adapter til en bærbar datamaskin, eller finne en liten, veldig dyr industriell disk på en modulenhet for et skrivebord. De var ikke veldig store sammenlignet med moderne harddisker (moderne IDE DOM-er topp på 8 GB eller 16 GB tror jeg). Jeg er ganske sikker på at du kunne ha fått solid state systemstasjoner satt opp før standard SSD-er ble vanlige.
Det har egentlig ikke vært noen universelle / magiske forbedringer i slitasjeutjevning så vidt jeg vet. Det har skjedd inkrementelle forbedringer mens vi har gått bort fra dyrere SLC til MLC, TLC og til og med QLC sammen med mindre prosessstørrelser (som alle reduserer kostnadene med noe høyere risiko for slitasje). Flash har blitt mye billigere.
Det var også noen få alternativer som ikke hadde slitasje. For eksempel å kjøre hele systemet fra en ROM (som uten tvil er solid state-lagring) og batteristøttet RAM, som mange tidlige SSD-er og bærbare enheter som Palm Pilot brukte. Ingen av disse er vanlige i dag. Harddisker vippet i forhold til å si, batteristøttet RAM (for dyrt), tidlig solid state-enheter (noe dyrere), eller bønder med flagg (aldri fanget på grunn av forferdelig datatetthet). Selv moderne flashminne er en etterkommer av raskt slettende eeproms og eeproms har blitt brukt i elektroniske enheter for lagring av ting som firmware i evigheter.
Harddisker hadde rett og slett et fint skjæringspunkt mellom høyt volum (som er viktig), lave kostnader og relativt tilstrekkelig lagring.
Årsaken til at du finner eMMC-er på moderne datamaskiner er at komponentene er relativt billige, store nok (for stasjonære operativsystemer) til den prisen, og deler fellestrekk med mobiltelefonkomponenter, slik at de produseres i bulk med et standardgrensesnitt. De gir også stor lagringstetthet for volumet. Tatt i betraktning at mange av disse maskinene har en dårlig 32 GB eller 64 GB-stasjon, på nivå med harddisker fra den bedre delen av et tiår siden, er de et fornuftig alternativ i denne rollen.
Vi når endelig et punkt der du kan lagre en rimelig mengde minne rimelig og med rimelige hastigheter på eMMC-er og blits, og det er derfor folk går for dem.
Har du noe å legge til forklaringen? Lyd av i kommentarene. Vil du lese flere svar fra andre teknologikyndige Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her .
Bildekreditt: Martin Voltri (Flickr)