Välkmälu

Välkmälu (inglise keeles "flash memory") on säilmälu, milles andmed säilivad ka toite väljalülitamise järel. Välkmälu on elektriliselt kustutatava ja programmeeritava püsimälu EEPROM erikuju (Flash EEPROM), mida ei kustutata mitte baithaaval, vaid suurte plokkidena.
Välkmälu on kompaktne, suure andmemahutavusega, väikese energiatarbega ja suhteliselt odav valmistada. Välkmälule kui elektroonilisele seadmele on omane suur lugemiskiirus (kuigi väiksem kui muutmälul) ja liikuvate osade puudumise tõttu suur löögi- ja vibratsioonikindlus. Seetõttu on välkmälu laialt kasutusel suuremahulise kompaktse andmesalvestina kas eraldi seadmena (mälupulk, mälukaart) või säilmäluna kaasaskantavates seadmetes (digikaamerates, mobiiltelefonides, mängukonsoolides) ja järjest rohkem arvuti pooljuhtkettana kõvaketta asemel või sellega kombineeritult.
Nüüdisaegsete tehnoloogiate puhul eeldatakse, et salvestatud andmed säilivad välkmälus vähemalt kümmekond aastat. See teeb need andmekandjana võrreldavaks CDga või isegi kõvakettaga, mille sisu tänapäevase ülikõrge salvestustiheduse tõttu samuti vananeb.
Välkmälu oluliseks puudusteks on piiratud tööiga (seda eriti NAND-mälul), sest iga kustutus-kirjutuskord kulutab mäluelemente. Samuti on mäluelemendid tundlikud tugevate elektrostaatiliste väljade suhtes.
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 cm2, 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 transistori hakati mäluelementides kõigepealt kasutama PROM-tüüpi püsimälus.
Laengukandjad (elektronid) kanduvad läbi dielektriku Fowler-Nordheimi tunnelleerumise abil või kuumade elektronide injektsiooni teel. 
Laengukandjad eemaldatakse Fowler-Nordheimi tunnelleerumise 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 lisatransistori 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 transistori ja väljundsignaal on väärtusega 1. Negatiivselt laetud ujupaisu korral on kanal suletud (mittejuhtiv) ning lätte ja neelu vahel ei saa voolu tekkida, mistõttu on väljundsignaali 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 100 000 – 1 000 000 kustutamis- ja kirjutamistsüklit, enne kui seadme töövõime hakkab halvenema. NAND-mälu vastupidavus on oluliselt väiksem, mõni tuhat tsüklit.
Välkmälu kõvaketta asendajana.
Välkmälul põhineval pooljuhtkettal puuduvad kõvaketaste mehaanilised piirangud. Seepärast on SSD-ketas (ingl. "Solid-State Drive") hea asendus kõvakettale, sest on kiirem, müratu ja energiasäästlik. SSD-mäluseadmed on kompaktsuse ja ökonoomsuse tõttu sobivad kasutamiseks kaasaskantavates seadmetes. Järjest laieneb pooljuhtketaste kasutus ka RAID- ja SAN-arhitektuure kasutavates arvutites ning serverites.
SSD-ketaste hind on järjest alanenud. Ka lähenevad nad kirjutustsüklite arvu poolest praegustele kõvaketastele.
On olemas hübriidsed tehnoloogiad, näiteks ReadyBoost, mis kasutavad SSD ja HDD paremaid omadusi.
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.