Püsimälu

**Püsimälu (sisemälu)** ehk **ROM** (ingl *Read-Only Memory*, ainult loetav mälu) on andmesalvesti, milles andmed säilivad püsivalt (ka ilma elektritoiteta). Enne pooljuhttehnoloogial baseeruvale mälutehnikale üleminekut 1970. aastail oli püsimäluna kasutusel näiteks ferriitmälu.

Esimesed pooljuht-püsimälud olid maskprogrammeeritud (lihtsustatult öeldes, trükitud läbi mälu struktuuri määrava fotošablooni – maski). Niisugune tõepoolest ainult lugemist võimaldav mäluseade sobis majanduslikult ainult masstootmiseks. Edasises arendustöös töötati välja niisugused püsimäluseadmete versioonid, mida saab programmeerida (informatsiooniga täita) ka pärast valmistamist. Ilmusid programmeeritavad püsimälud (PROM) ja selle edasiarendatud tüübid. Kõigile neile on omane talletatud info kestev säilimine. Kõikide mälude puhul on kasutusel kahendsüsteem ja ühes mälupesas (täpsemalt mäluelemendis) talletatakse üks bitt infot.

## Püsimälutüübid
Püsimälu on arenenud koos arvutitehnikaga ja selle käigus on välja kujunenud mitu püsimälutüüpi. 

***MROM** (*Mask ROM* ehk mask-ROM) – tootja programmeeritud ainult loetav mälu
***[[PROM]]** (*Programmable ROM* ehk programmeeritav püsimälu) –  tarbijal võimalik programmeerida üks kord

***[[EPROM]]** (*Erasable PROM* ehk kustutatav programmeeritav püsimälu) – juba programmeeritud kiibil on võimalik infot kustutada UV-kiirguse abil ja seejärel sellele uuesti kirjutada. Iseloomulik on kiibil olev aken, mille kaudu toimub kustutamine

***EEPROM** (*Electrically Erasable PROM* ehk elektriliselt kustutatav programmeeritav püsimälu) – infot on võimalik kirjutada ja kustutada, kasutades selleks süsteemi enda elektritoidet; infot on võimalik kirjutada ja kustutada bittide kaupa (täpsemalt adresseeritavate üksustena – baitidena)
***[[Välkmälu]]** (*flash memory*) – erineb EEPROMist selle poolest, et infot kustutatakse paljudest mälupesadest moodustatud plokkide kaupa. 

Iga uus ROMi versioon on eelmise vähehaaval välja tõrjunud ja 2010. aastatel on kõige levinum püsimälutüüp välkmälu.
 

## Eri tüüpi püsimälude ehitus

### Mask-ROM
Mask-ROMis on info kodeeritud valmistaja poolt ja hiljem ei saa seda muuta. Niisuguse ROMi valmistamisel kulub tarkvara loomisest lõpliku püsimälu saamiseni palju aega ja seega oli soodne ainult suure arvu kiipide tootmine. Mistahes muutuse tegemiseks oli tarvis toota uus kiip.

Mask-ROMi kiibil on moodustatud veerujuhtmete ja reajuhtmete võrk, kus iga veeru ja rea ristumiskohale vastab 1 bitt. Reajuhtmeid nimetatakse siin ka sõnaliiniks ja veerujuhtmeid bitiliiniks. Mõlemal liinil on võimalus luua ühendus mälupesa MOSFET-transistorlülitiga. Sõltuvalt sellest, kas liinid on ristumiskohal transistori  paisu ja lätte kaudu ühendatud või mitte, on nende väärtus vastavalt 1 või 0. Kui programmeerimisel transistori paisuühendus katkestatakse ()biti väärtus 0), pole selle mälupesa olek hiljem enam muudetav. Analoogiaks võib tuua CD-ROMi, mis on samuti tehases valmistatud ning kasutajal puudub võimalus CD-ROMil olevat infot muuta.

### Programmeeritav püsimälu
 
PROMi 1956. aastal väljatöötatud lahendus võimaldas kiipi üks kord programmeerida. Tehasest tulnud uutel kiipidel olid kõik mälupesad väärtusega 1 ja PROMi kasutajal oli võimalik seda ise vastavalt vajadusele programmeerida. Selleks kasutati spetsiaalset programmeerimisriista, mis normaalsest toitepingest kõrgemat pinget kasutades põletab läbi sõna- või bitiliini ühenduse transistoriga programmiga määratud mälupesades, andes neile väärtuse 0. PROMi puhul  saab kasutaja tellida suure koguse tühjasid PROM-kiipe ning neile vastavalt vajadusele infot salvestada. PROMi analoog on CD-R või DVD-R, millele kasutajal on võimalik info ka ainult üks kord  talletada.

### Kustutatav programmeeritav püsimälu
 
EPROM leiutati 1971. aastal. Selle mälu kiipe on võimalik uute andmetega üle kirjutada, kui mälu sisu eelnevalt kustutada  ultraviolettkiirgusega. Seega sai nüüd kiipi palju kordi kasutada (umbes 1000 tsüklit, enne kui UV-kiirgus EPROM-i ära kulutab).

EPROMil on samuti veergudest ja ridadest võrk, aga igas mälupesas on eriline kahe paisuga transistor: üks juhtpais  ja teine nn ujuv pais. Viimane  on täielikult isoleeritud õhukese oksiidikihiga ja tal puudub väljaviik. Ujupais saab olla realiiniga ühenduses ainult läbi juhtpaisu  (ühenduse olemasolul on mälupesa väärtus 1). Ujupaisule on võimalik anda negatiivne laeng, kasutades Fowler-Nordheimi tunneliefekti. Mälupesale rakendatakse vastava sõnaliini kaudu pinge 25 V ja bitiliini pidi 5 V, mille tulemusena ergastatud elektronid liiguvad läbi oksiidikihi ujupaisule ja jäävad sinna lõksu, andes ujupaisule negatiivse elektrilaengu. Mälupesa sensor mõõdab transistori lätte ja neelu vahelist voolu ja kui see on suurem kui 50 % algsest, siis on mälupesa bitiväärtus 1 ning vähema puhul 0. Värskel EPROM-il on kõik ühendused lahti ja seega kõigi mälupesade väärtus 1.

Programmeeritud info kustutamiseks kasutatakse tööriista, mis annab kindla lainepikkusega (standardiks 253,7 nm) UV-kiirgust mis suunatakse läbi EPROM-il asuva kvartsakna kiibile umbes 10 minuti kestel. UV-kiirgus ergastab ujupaisu elektrone sedavõrd, et need suudavad  oksiidikihi läbida ja ujupaisu negatiivne laeng kaob. 

 
### Elektriliselt kustutatav programmeeritav püsimälu

EEPROM on välja töötatud 1983. aastal, ehituselt sarnane EPROMiga, aga salvestatud infot on võimalik kustutada elektrivooluga ja seda ilma spetsiaalsete tööriistadeta, ka pole selleks 
tarvis mälu süsteemist eemaldada. Kui EPROMilt kustutati kogu mikrokiibi info korraga, siis EEPROMil saab kustutada ja muuta infot ühe biti haaval.

Biti haaval muutuste tegemine on aeglane ja seega töötas Toshiba 1980. aastate keskel välja Flash EEPROMi ehk välkmälu, kus infot kustutatakse paljudest mälupesadest koosnevate plokkide kaupa. Nimi Flash tuleneb kujutluspildist, et mälusisu kustutamine toimub nagu fotoaparaadi välgatus. Välkmälu on kõige laialdasemalt kasutuselolev püsimälu ja võrreldes EEPROM-ga on mälupesade vastupidavus oluliselt suurenenud, võimaldades garanteeritult kuni miljon kirjutamistsüklit. 

Erinevalt EPROM-ist on EEPROM-il lisaks üks selekteeriv transistor ja ühele mälupesale vastavad kaks realiini. Teine liin (word’) on selleks, et valida pingestatud veerust soovitud mälupesa, aktiveerides selekteeriva transistori. Valitud pesas toimub seejärel sarnaselt EPROM-iga ujupaisu negatiivse laengu kustutamine, mis muudab mälupesa väärtuse 0-lt tagasi 1-le. Selline süsteem võimaldabki biti kaupa kustutamist. Välkmälu puhul puudub mälupesas selekteeriv transistor ja kustutamine toimub paljudele mälupesadele ühises plokis korraga.  

## Püsimälu kasutamine
Püsimälu mask-ROM on olnud kasutusel arvutites käivitamiseks olulise info, nagu BIOSi salvestamiseks, samuti füüsilistes krüpteerimisvõtmetes, püsivarana mitmesuguse riistvara draiverites. Püsivara vajavateks seadmeteks võivad olla CD ja DVD draivid, kõvakettad, graafikakaardid, kuvarid, muusikakeskused, köögimasinad  jne. Siiski on ka neis rakendustes traditsioonilised mäluvariandid asendumas välkmäluga, mis võimaldab püsivara hõlpsalt värskendada. 

Mask-ROM on laialt levinud mängukonsoolides mängude talletamiseks. Püsimällu salvestatud info on kaitstud füüsiliste mõjutuste suhtes. Konsoolides asendasid ROMi optilised andmekandjad, nagu CD, DVD ja Blu-ray Disc, kuna viimased on suure mahutavusega ning kergelt ja odavalt paljundatavad. 

Laialdaselt on kasutusel püsimälu ka elektroonilistes mänguasjades, mis sooritavad mingeid kindlaid liigutusi, vilgutavad tulukesi või teevad häält. Nende mälu ei pea olema muudetav, seepärast ongi kõige ratsionaalsem vajalik info salvestada näiteks püsimällu mask-ROM või PROM. Sellest ei kao mälu sisu ega seega mänguasja funktsioon ka patareide tühjenemisel. Turvalisuse seisukohalt on mask-ROMi eeliseks, et sinna salvestatud infot ei saa muuta ega kustutada.

## Vaata ka
*Mälu (arvuti)

## Viited

## Välislingid
* http://www.embeddedcomponents.com/blogs/2007/09/introduction-to-hhp-16k-eprom-emulator/
* http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/40-memories/20-rom/rom.html