Välkmälu

Ajalugu

Välkmälu leiutas dr Fujio Masuoka, kui töötas 1980. aastatel Toshibas. Mälutüübile andis nimetuse flash (ingl 'välk') Masuoka kolleeg Shoji Ariizumi, sest mälu kustutamisprotsess meenutas talle välklambi välgatust. Masuoka esitles oma leiutist Elektri- ja Elektroonikainseneride Instituudi 1984. aasta konverentsil San Franciscos.
Intel nägi Masuoka leiutises suurt potentsiaali ja esitles esimest NOR-tüüpi välkmälukiipi 1988. aastal. NOR-tüüpi välkmälul on piiratud kustutamis- ja kirjutamiskiirus, aga see on varustatud täielike aadressi- ja andmesiinidega, mis tähendab, et suvalise adresseeritava üksuse poole on võimalik otse pöörduda. Esimestel CompactFlash-mälukaartidel oli NOR-tüüpi mälu, hiljem hakati kasutama odavamat NAND-tüüpi mälu.
Toshiba tutvustas NAND-välkmälu 1987. aastal konverentsil International Electron Devices Meeting. Sellisel mälul on lühike kustutamis- ja kirjutamisaeg. Iga mäluelement vajab kiibil vähe pinda, mis võimaldab elemente tihedalt pakkida ja seetõttu on hind biti kohta madal. Kuid NAND-mälu puhul ei ole võimalik suvalise aadressi poole otse pöörduda, vaid andmeid tuleb lugeda plokkidest, milles võib olla sadu või isegi tuhandeid bitte. Selle omaduse poolest sarnaneb NAND-mälu teiste selliste sekundaarsalvestitega nagu kõvakettad ja optilised andmekandjad.
Esimene NAND-välkmälu kasutav andmekandja oli SmartMedia-mälukaart, mis ilmus 1995. aastal. Pärast seda ilmusid MultiMediaCard, Secure Digital, Memory Stick ja xD-Picture Card. Uue põlvkonna mälukaardid on üliväikesed, näiteks microSD-kaardi pindala on umbes 1,5 cm², kuid mahutavus kuni 32 GB.

Välkmälu tööpõhimõte

Välkmälus säilitab andmeühikut (bitt) MOSFET-transistoriga sarnanev elektronseadis, millel on ilma väljaviiguta lisaelektrood  – ujupais (ingl floating gate). See paikneb juhtpaisu all ja on lätte ning neelu vahelisest kanalist eraldatud õhukese dielektrikukihiga. Transistori elektroode sobivalt pingestades kantakse ujupaisule elektrone, mille tulemusena omandab see negatiivse elektrilaengu, mis võib jääda püsima pikaks ajaks (aastateks). Laengu olemasolu või puudumine ujupaisul määrab mäluelementi salvestatud biti väärtuse. Sellist transistorit hakati mäluelementides kõigepealt kasutama PROM-tüüpi püsimälus.
Laengukandjad (elektronid) kanduvad läbi dielektriku Fowler-Nordheimi tunneleerumise abil või kuumade elektronide injektsiooni teel. 
Laengukandjad eemaldatakse Fowler-Nordheimi tunneleerumise abil. Fowler-Nordheimi efekt on energeetiliselt tõhusam kui kuumade elektronide injektsioon.
Transistoristruktuuride omavahelise ühendusviisi järgi mälumassiivis eristatakse kaht tüüpi välkmälu: NOR Flash ja NAND Flash. Nimetused NOR ja NAND seostuvad vastavate loogikaelementide nimetustegaja.

NOR- ja NAND-mälud

NOR kasutab klassikalist kahemõõtmelist ristuvate  rea- ja veerujuhtmetega maatriksit, kus igale ristumiskohale vastab ühe transistoriga mäluelement. Seejuures on reajuhe ühendatud transistori neeluga ja veerujuhe juhtpaisuga. Niisugune ühendusviis võimaldab otse pöörduda iga adresseeritava mälukoha juurde, kuid vajab rohkesti kiibipinda. NOR-mälule on iseloomulik lühike pöördusaeg ja seetõttu suur lugemiskiirus.
NAND kasutab kolmemõõtmelist massiivi. Selle aluseks on samasugune NOR-maatriks, kuid ühe transistori asemel on igasse ristumiskohta jadamisi ühendatud suur hulk transistore, kusjuures igaühel on eraldi väljaviik juhtpaisu pingestamiseks. Niiviisi saavutatakse oluliselt suurem paigutustihedus, sest iga elemendi juurde on vaja viia ainult üks juhe – paisujuhe. Siiski muutub kirjutamise ja lugemise algoritm keerukamaks ja sellest tulenevalt pikeneb pöördusaeg. Iga jadaühenduses transistorirühm vajab ka kaht lisatransistorit rühma ühendamiseks bitiliinile. NAND-mälule on omane väike voolutarve.
Vastavalt kummagi välkmälu isearustele erinevad ka kasutusalad: NOR  näiteks protsessorite ja kontrollerite säilmäluna, NAND mälupulkades, mälukaartides ja pooljuhtketastes.

Andmete lugemine

Ühe biti lugemiseks antakse otsingule vastava mäluelemendi transistori juhtpaisule positiivne pinge. Ilma laenguta ujupaisuga elemendis läbib vool transistorit ja väljundsignaal on väärtus 1. Negatiivselt laetud ujupaisu korral on kanal suletud (mittejuhtiv) ning lätte ja neelu vahel ei saa  voolu tekkida, mistõttu on väljundsignaal on väärtus 0.
NAND-struktuuris antakse samaaegselt paisupingega teiste järjestikku ühendatud transistoride paisudele selline minimaalne pinge, et need oleksid juhtivad signaali 1 läbilaskmiseks.

Andmete salvestamine

Vajalike bittide salvestamiseks on vajalik, et piisava suurusega elektrilaeng jõuaks adresseeritava mäluelemendi ujupaisule. Selleks tuleb juhtpaisule anda küllalt kõrge negatiivse pinge impulss. Samamoodi on võimalik ka laeng ujubaasist eemaldada, nüüd aga positiivse pingega. Mäluelemendi transistori ujubaas on vaja laengust vabastada selleks, et sellessei saaks uut bititväärtust sisestada.
Nii NOR- kui ka NAND-mälusse kirjutatakse andmed kahes etapis: esmalt eemaldatakse kõigilt ülekirjutatavatelt elementidelt laeng (neile antakse bitiväärtus 1) ja seejärel viiakse vajalikud mäluelemendid olekusse 0 neile laengu andmisega.
Kui NOR-tüüpi välkmälu saab lugeda/kirjutada suvaliselt aadressilt / suvalisele aadressile, siis NAND-mälus on kustutamine võimalik vaid tervete plokkidena. Üldjuhul seatakse kõik bitid plokis väärtusele 1.  Kui hakatakse kirjutama tühjale plokile, on iga bitt selles plokis seadistatav (programmeeritav). Kuid pärast seda, kui bitt seatakse väärtusele 0, võib seda seada väärtusele 1 ainult pärast terve ploki kustutamist. Teisisõnu pakub NAND-tüüpi välkmälu võimalust lugeda ja kirjutada suvalisele aadressile, aga kustutada on võimalik ainult tervete plokkidena. Ühe biti võib kirjutada üle, aga ainult siis, kui sellel on veel väärtus 1. Näiteks, kui on olemas plokk 1111, võib sellesse kirjutada 1011, siis 1001, siis 0001, ja lõpuks 0000. Pärast seda on kirjutamiseks vaja terve plokk kustutada.
Andmete kirjutamisel kasutatavad suhteliselt kõrge pinge ja tugeva voolu impulsid kahjustavad vähehaaval ujupaisu eraldavat dielektrikut, mis panebki lõpuks piiri kirjutuskordade arvule. Andmete lugemine mäluelementi ei kahjusta.
Enamik NOR-välkmälu kasutavatest seadmetest on garanteeritud vastu pidama sada tuhat kuni miljon kustutamise ja kirjutamise tsüklit, enne kui seadme töövõime hakkab halvenema. NAND-mälu vastupidavus on oluliselt väiksem, mõned tuhnded tsüklid.

Mälumahu suurendamine

Kuna välkmälul on lihtne struktuur ja järjest kasvab vajadus suurema mahu järele, püütakse pidevalt vähendada välkmälus kasutatavate komponentide mõõtmeid, seda eriti  NAND-mälu osas. Kui mäluelemendi suurus jõuab tehnoloogiliselt minimaalse piirini, saab edaspidine tiheduse suurenemine baseeruda ühte elementi mahtuvate bittide arvu suurendamise teel. Nii ongi kasutusel MLC- ja TLC-elemendid, mis mahutavad vastavalt kaks või kolm bitti.
Uurimisjärgus on mitmed uued tehnoloogiad (näiteks FeRAM (ferroelektriline mälu) ja MRAM (magnetoresistiivne mälu), mis  võivad tulevikus hakata välkmälu asendama.