Flash-muisteista on tullut sulautettujen sovellusten suosituin haihtumaton tallennusväline. Syitä on monia. Flash-muisti on kompakti luotettavaan pitkäaikaiseen datan tallennukseen sopiva tallennusväline, joka toimii laajalla lämpötila-alueella ja kestää erilaisia olosuhteita kuten iskuja ja värähtelyjä huomattavasti paremmin kuin pyöriviä osia sisältävät tallennusvälineet.
Artikkelin kirjoittaja Victor Tsai SMART Modular Technologiesilla flash-tuotteiden johtajana. |
Vaikka flash-muisti soveltuu hyvin käytettäväksi sulautetuissa sovelluksissa, on kuitenkin tärkeää valita juuri kulloisiinkin vaatimuksiin soveltuva formaatti ja kotelointi. Monissa teollisuussovelluksissa vaarana on pölyn ja muiden saasteiden tunkeutuminen laitteistoihin. Kosteuden vaihtelut ja ilmassa mahdollisesti olevien tulenarkojen räjähdysherkkien kemikaalien läsnäolo heikentävät metallisia sähköliitäntöjä, jolloin järjestelmät voivat vikaantua. Suunnittelijoiden onkin tarkkaan mietittävä minkä tyyppiset flash-muistituotteet soveltuvat parhaiten mihinkin käyttökohteeseen.
Laaja valikoima flash-muisteja
Koska flash-muisteja käytetään paljon kuluttajille ja kaupalliseen käyttöön tarkoitetuissa tietotekniikan tuotteissa, niistä on tarjolla kapasiteetiltaan ja suorituskyvyltään vaihtoehtoisia malleja runsaasti. Piirisuunnittelijan ja ohjelmistokehittäjän näkövinkkelistä laitteistoliitäntöjen suunnittelu on yleensä helppoa ja ohjelmistotuki on suoraviivaista. Helppokäyttöisyyttä edesauttaa suurelta osin se, että kaikki flash-muistin muistinhallinta tapahtuu muistimoduulissa itsessään, jolloin mitään hallintatoimintoja ei jää sovellusohjelmoijalta huomioimatta ja sovellusten kannalta haihtumaton muisti toimii kuin virtuaalinen levyasema.
Flash-muisti edellyttää kuitenkin tehokkaampia datanhallinnan ominaisuuksia kuin mitä perinteisissä magneettisissa levyasemissa tarvitaan. Yksi tällainen hallintaelementti on tarve tuhota edellisen muistilohkon data ennen kuin siihen kirjoitetaan uutta dataa sen sijaan, että yksinkertaisesti muistipaikkaan kirjoitettaisiin suoraan uutta dataa, jolloin siellä ennestään ollut data häviää. Flash-muistin solut ohjelmoidaan vetämällä varautuneita partikkeleita tyypillisesti kvanttitunneliprosessilla kelluvalle hilalle, joka sijaitsee normaalin transistorin ohjaushilan ja transistorin kanavan välissä. Varautuessaan liukuva hila pitää transistorikanavan auki myös silloin, kun tehoa ei syötetä ohjaushilaan, koodaamalla sen ei-nollaksi. Ainoa tapa kumota tämä on muistisolun nollaaminen, jolloin ohjelmoimaton tila palautuu.
Haittapuolena on myös se, että varaus- ja purkausjaksot vahingoittavat pikku hiljaa flash-muistin rakennetta. Miljoonien kirjoitusjaksojen jälkeen transistorin kyky tallentaa dataa luotettavasti saattaa heiketä, jolloin se pitää poistaa käytöstä. Muistin elinaikana toisiin muistipaikkoihin voidaan kirjoittaa useita kertoja uudelleen samalla, kun toiset voivat jäädä lähes käyttämättömiksi. Jotta vältyttäisiin koko muistin hylkäämiseltä ja korvaamiselta uudella, tallennusmoduulissa oleva ohjain aktiivisesti hallitsee datan sijoittelua flash-muistilohkoihin. Näin vältetään se, etteivät mitkään solut joudu liian suurelle käytölle.
Tyypillisesti sovelluksen muistiavaruuden segmenteistä eniten toistuvia uudelleen kirjoituksia, kuten ohjelman suorituksen aikaisia säännöllisiä data-arvojen varmennustallennuksia haihtumattomaan muistiin, ohjataan fyysisen muistin eri lohkoihin. Näin tasapainotetaan jokaisen soluryhmän vastaanottamien kirjoituskertojen määrää flash-muistin elinaikana.
Muistin hallinta
Tiedostojärjestelmän ja muistinohjaimen välinen tiedonsiirto on tärkeässä asemassa muistin käyttöiän saamisessa mahdollisimman pitkäksi. Yksinkertaisissa flash-hallinnan suunnitteluissa riskinä on, että ohjain yrittää siirtää ja uudelleen kirjoittaa datalohkoja, jotka on poistettu tiedostojärjestelmän tasolla, koska sillä ei ole keinoa päätellä ovatko muistilohkot yhä käytössä vai eivät. Monet flash-ohjaimet tukevat nykyisin TRIM-komentoa, joka tarjoaa yhteyden tiedostojärjestelmän ja flash-ohjaimen välille, jolloin tarpeettomaksi käyneet datalohkot siirretään asianmukaisesti. Ne yksinkertaisesti pyyhitään pois, kun on tarve kirjoittaa uutta dataa muistipaikkaan. Kun tarpeettomia kirjoitusoperaatioita saadaan vähennettyä, TRIM-komennon ansiosta flash-muistin käyttöikää saadaan pidennettyä.
Vaikka siirrettävän tallennusmedian ratkaisut vapauttavat suunnittelijan flash-muistin muistinhallinnan suunnittelusta ja pidentävät muistien käyttöikää, ne eivät kuitenkaan useinkaan sovellu sellaisenaan sulautettuihin järjestelmiin, joita käytetään teollisuudessa ja muilla aloilla, joissa laitteen tarvitsee sopia ympäristöönsä. Puolijohdekiintolevyt eli SSD:t ovat verrattain yleiskäyttöisiä, sillä ne on suunniteltu käytettäväksi perinteisten kiintolevyjen sijasta iskuille ja värähtelyille alttiissa järjestelmissä. SSD-levyjä käyttävät järjestelmät voi olla syytä asentaa iskuavaimentaviin runkoihin, jotta varmistetaan kaapelointien kytkentöjen pysyvyys kuljetuksen ja käytön aikana.
Siirrettävän median haasteita
CompactFlash Card-, SD Card- ja MultiMediaCard- eli MMC-standardeihin perustuvat siirrettävän median laitteet ovat kooltaan pieniä ja keveitä. Iskujen ja värähtelyjen aiheuttamat ongelmat on kuitenkin pidettävä mielessä ja käytössä onkin erilaisia lukitusmenetelmiä varmistamassa, etteivät iskut ja värähtelyt pääse irrottamaan muistia liitännästään. Siirrettävien korttien suuri ongelma on suurten SSD-korttien nastaliittimien tapaan kemiallisten yhdisteiden ja pölyn muodostuminen teollisuuden tuotantoympäristöissä. SD- ja MMC-kortit ovat erityisen herkkiä, sillä kortinreunaliittimiin kulkeutuu helposti korroosiota ja pölyä ellei niitä ole suojattu.
Yksi vaihtoehto on luopua siirrettävyydestä ja käyttää suoraan piirilevylle juotettuja muistipiirejä. Suorat kiinteät liitännät yhdessä luotettavan koteloinnin ja juotevalintojen kanssa vähentävät merkittävästi kemiallisten yhdisteiden ja pölyn aiheuttamia ongelmia. Tuotekehityksessä tulee tällöin ottaa huomioon, että flash-hallinta tarvitsee enemmän paneutumista. Toinen vaihtoehto on ottaa riski, että tuotteen elinkaari jää lyhyemmäksi, jos ei haluta panostaa sellaisen laiteohjelmiston kirjoittamiseen, jolla lisättäisiin mahdollisuus käytön tasapainottamisen ja TRIM-komentojen kaltaisten toimintojen suorittamiseen.
On myös olemassa vaihtoehto, jossa yhdistyy juotetun muistinpiirin luotettavuus ja siirrettävän flash-median helppokäyttöisyys. Kyseessä on sulautettu MultiMediaCard eli eMMC-standardi. Alun perin mobiilisovelluksiin kehitetty eMMC yhdistää flash-muistit ja ohjaimen yksittäiseen BGA-koteloon pakattuna.
eMMC-standardi
eMMC:lle on olemassa erikokoisia kotelointivaihtoehtoja. JEDEC-standardissa määritellään 100, 153 tai 169 juotosnystyä käsittävät ja 8-bittisillä rinnakkaisliitännöillä tiedonsiirtoa varten varustetut BGA-kotelot, jotka tarjoavat hyvän kompromissin tehokkaan suorituskyvyn ja PCB-suunnittelun helppouden välillä. Esimerkiksi 100-nastaisessa formaatissa käytetään isompia juotosnystyjä, jolloin voidaan hyödyntää edullisempia PCB-tuotantoprosesseja. Kaikissa tapauksissa juotettavien liitäntöjen suuri suhteellinen osuus teho-, maatto- ja signaaliliitäntöihin nähden takaa erinomaiset liitokset painetun piirilevyn ja muistin välillä, mikä varmistaa hyvän kestävyyden iskuja ja värähtelyjä vastaan.
Vaikka eMMC-standardi onkin alun perin kehitetty kuluttajalaitteita varten, ohjaimen lisääminen muistiin ja standardin mukainen BGA-kotelointi tekevät siitä suunnittelijalle käyttövalmiin, kun halutaan suunnitella sulautettuja ratkaisuja hankaliin ympäristöoloihin. Erikoistuneet valmistajat kuten SMART Modular Technologies käyttää teollisuustason flash-piirejä ja kotelointimateriaaleja eMMC-ratkaisuissaan, jotka on tarkoitettu toimimaan laajoilla lämpötila-alueilla.
Piiriin sisältyvän ohjaimen ansiosta eMMC-ratkaisut tarjoavat vakio-ominaisuuksien lisäksi sellaisia toimintoja kuten kuormituksen/kulumisen tasoitus (wear levelling) ja TRIM-yhteensopivuutta, jotka lisäävät toimintavarmuutta. Esimerkiksi DuraFlash-sarjan eMMC-ratkaisut tukevat ECC-virheenkorjausta, jolloin tiedonsiirron luotettavuus järjestelmään ja järjestelmästä paranee merkittävästi. Käytettävissä on useita erilaisia EEC-teknologioita. SMART soveltaa harvennettua pariteetintarkistuskoodia sen tarjoaman tehokkaan virheentunnistuksen ja -korjauksen ansiosta.
DuraFlashin tarjoamien ominaisuuksien ansiosta asiakkaat ovat pystyneet parantamaan tuotteidensa luotettavuutta merkittävästi. Esimerkkinä voidaan mainita, että eräällä asiakkaalla oli ongelmia siirrettävien SD-korttien kanssa pikaruokakeittiöihin tarkoitetuissa tuotteissa. Rasva ja muut likaavat aineet tunkeutuivat helposti SD-korttien muistipaikkojen kontakteihin, jolloin seurasi välittömiä yhteyskatkoksia ja järjestelmän osia putosi pois käytöstä. Kun SD-korttitallentimet korvattiin DuraFlash-sarjan eMMC-komponenteilla, vältyttiin näiltä ongelmilta menettämättä kuitenkaan sisäisen flash-hallinnan ja kestävän haihtumattoman tallennuksen tarjoamaa mukavuutta.
Vaikka sulautettujen järjestelmien suunnittelijoilla onkin useita vaihtoehtoja tarjolla haihtumattomien muistiratkaisujen suunnitteluun, ympäristön ominaisuudet nostavat juotettavan vaihtoehdon varteenotettavaksi vaihtoehdoksi. eMMC-teknologialla on mahdollista saavuttaa siirrettäviin tallennusvälineisiin liittyvät edut ilman, että luotettavuudesta tarvitsisi tinkiä lainkaan.