Dünaamiline muutmälu

Allikas: Vikipeedia
Andmete lugemisprotseduuri skeem
Andmete kirjutamisprotseduuri skeem

Dünaamiline muutmälu ehk DRAM (ingl. k. > dynamic random access memory) on muutmälu tüüp, mis säilitab iga bitti eraldi kondensaatoris integraalskeemis. Kuna kondensaatorid kaotavad oma elektrilaengut siis info lõpuks kustub, kui kondensaatorit ei laeta perioodiliselt. Vajadus värskendada laengut teeb sellest dünaamilise mälu - vastandina SRAM-ile ja teistele staatilistele mäludele. DRAM-i eelis SRAM-i ees on selle lihtne struktuur: ühe biti hoidmiseks on vaja ainult ühte transistorit ja kondensaatorit võrreldes kuue transistoriga SRAM-is. See võimaldab mahutada infokandjaid väga tihedalt, suhteliselt madala hinna juures. Staatilised mäluseadmed on keerukama mäluelemendi tõttu kallimad ja nende maht mõnevõrra väiksem. DRAM on laialdaselt kasutatud erinevates mikroprotsessorites ja arvutiseadmetes.

Ajalugu[muuda | redigeeri lähteteksti]

1966. aastal lõi Dr. Robert H. Dennard ühe-transistorilise DRAM-i. Dennard töötas oma idee kallal loomaks lihtsat mäluelementi, mis kasutaks ainult ühte transistorit ja väikest kondensaatorit. Idee kujunes tal teiste tiimide magneetilise mälu uurimisest. 1968. aastal võtsid IBM ja Dennard DRAM-ile patendi. 1969. aastal Honeywell (suur konglomeraatettevõtte, mis keskendub elektroonikale) palus Intel-il teha DRAM, kus kasutataks nende loodud 3-transistorilist pesikut. Sellest sai Intel 1102. 1970. aasta alguses, kuna 1102-l oli palju vigu, alustas Intel oma parandatud disaini loomist, mida tehti salaja, et hoiduda konfliktist Honeywell-iga. 1970. aasta oktoobris andis Intel välja uuendatud DRAM-i, teatud kui i1103. 1973. aastal esitleti uut DRAM-i, millel oli mitmetahuliste ridade ja veergudega aadressirida. Seda teati kui Mostek MK4096. Selline adresseerimisskeem, lubas sellel mahutada ennast väiksemate kontaktidega pakkidesse. See oli suur eeldus maksumuses, mis oleks suurenenud mälu suuruse kasvamisel.[1]

Tööpõhimõte[muuda | redigeeri lähteteksti]

DRAM on tavaliselt paigutatud ruudukujulise maatriksina. Antud skeem käsitleb andmete lugemisprotseduuri ning mälumaatriks on sellel skeemil suurusega 4x4. Informatsiooni hoidmiseks kasutatakse kondensaatorit. Ühe infobiti kahele loogilisele olekule vastavad siis laetud ja laadimata kondensaator. Skeemilistel ja tehnoloogilistel põhjustel moodustavad ühe mäluelemendi kondensaator ja transistor, kusjuures kondensaatorina on põhimõtteliselt võimalik kasutada transistori kahe viigu vahelist mahtuvust, mis igal väljatransistoril konstruktsiooni eripära tõttu juba paratamatult eksisteerib. Oluliseks erinevuseks staatilise mäluelemendiga võrreldes on see, et informatsioon säilib mälupesikutes vaid lühikest aega ja seda on vaja pidevalt uuendada ehk regenereerida. Regenereerimise ajal ei ole tavaline lugemine ega kirjutamine võimalik, samuti ei saa regenereerimist alustada lugemise või kirjutamise tsükli ajal.[2]

Seda pikka horisontaalset joont, mis ühendab igat rida, nimetatakse juhtmeks. Igas veergude lahtris on 2 bitti, mis omakorda on ühendatud teiste mälulahtritega veerus. Neid teatakse kui + ja - bitijuhet. Tuvastusvõimendajaks nimetatakse paarikaupa risti ühendatud invertereid, mis on bitijuhtmete vahel. Esimene inverter on ühendatud + bitijuhtmest - bitijuhtmesse ja teine - bitijuhtmest + bitijuhtmesse. See on näide positiivsest tagasisidest ning selline asetus on stabiilne ainult juhul, kui üks bitijuhe on kõrge pingega ja teine madala pingega.

Biti lugemiseks veerust toimuvad järgmised sammud:

  1. Tuvastusvõimendaja ühendatakse lahti, seejärel bitijuhtmed laetakse võrdsetele pingetele, mis oleksid kõrge pinge ja madala pinge loogilise seisundi vahel. Bitijuhtmed on omavahel füüsiliselt sümmeetrilised, et hoida mahtuvust, ja seega ka pingeid, võrdsetena.
  2. Laadimisahel lülitatakse välja, kuna bitijuhtmed on üpris pikad. Neil on küllalt mahtuvust, et seda laetud pinget lühikest aega säilitada.
  3. Vajalikus reas olev sõnarida on aetud kõrgeks, et ühendada pesiku talletuse kondensaator selle bitijuhtmega. See lubab transistoril püsida, kandes üle laengut elemendi talletuse ja ühendatud bitijuhtme vahel. Kui elemendi talletuse kondensaator on välja lülitatud, siis see vähendab bitijuhtme pinget, kuna laadimine on ülekantud kondensaatori talletusse. Kui mälupesik on laetud, siis bitijuhtme pinge väheneb ainult pisut, kuna püütakse hoida mälupesiku mahutavust kõrgena ja bitijuhtme mahutavust madalana.
  4. Tuvastusvõimendaja lülitatakse sisse. Positiivne tagasiside hakkab toimima ja võimendab väikest pinge erinevust bitijuhtmete vahel, kuni üks bitijuhe on täielikul madalal pingel ja teine maksimaalsel kõrgel pingel. Kui see on toimunud, siis rida on avatud ehk vajaliku pesiku andmed on saadaval.
  5. Kõik veerud tuvastatakse samal ajal ja tulemused kantakse andmelinki. Seejärel antud veeru aadress valib, milline biti link ühendada välisskeemiga. Mitu lugemist saab teostada kiirelt ilma viivituseta avatud reas, kuna kõik andmed on juba tuvastatud ja lingitud.
  6. Sel ajal kui veergude lugemine jätkub liigub vool tagasi mööda bitijuhtmeid tuvastusvõimendaja mälupesikuteni. See regenereerib laengut mälupesikuis suurendades pinget kondensaatori talletuses, kui see oli üldse laetud, või hoides seda laenguta, kui see oli tühi. Bitijuhtmete pikkuse tõttu luues pika vooluviivituse ülekantavale laengule, võib võtta kaua aega ning ka kattumise ühe või mitme veerulugemisega.
  7. Kui kõigi praeguste ridade veergude lugemine on tehtud, siis sõnarida lülitatakse välja, et lahtiühendada mälupesiku kondensaator (rida "suletakse"), tuvastusvõimendaja lülitatakse välja ja bitijuhtmed regenereeritakse uuesti.[3] Informatsiooni lugemisel kondensaator tühjeneb ning ta tühjeneb ka suletud transistori korral lekkevoolu tagajärjel, mistõttu tuleb teda perioodiliselt uuesti laadida.[4]

Mälule kirjutamine[muuda | redigeeri lähteteksti]

Rida on avatud ja antud veeru tuvastusvõimendaja on ajutiliselt sunnitud tahetud kõrge ja madala pinge olekusse, seega hakkab bitijuhe laadima või tühjakslaadima mälupesiku kondensaatorit soovitud väärtuseni. Positiivse tagasiside tõttu võimendaja hoiab seda stabiilsena, isegi kui sundlus on eemaldatud. Kindlale pesikule kirjutamise ajal on kõik veerud reas samaaegselt tuvastatud, täpselt nagu lugemisel. Üksiku veeru mälupesiku kondensaatori laeng muudetakse ja siis kirjutatakse terve see rida tagasi.

DRAM-i regenereerimine[muuda | redigeeri lähteteksti]

JEDEC-i (Foundation for developing Semiconductor Standards) standardi järgi on vaja kondensaatorit uuendada iga 64 ms järgi. Lugemis- kirjutamisprotsessi organiseerib (arvutab välja) CPU ning see on dünaamilise mälu puhul ülikeerukas ülesanne.


Mõned süsteemid regenereerivad kõiki ridu iga 64 ms tagant. Teised süsteemid jällegi regenereerivad üht rida korraga järkjärguliselt 64 ms intervalli jooksul. Mõned üksikud reaalajasüsteemid regenereerivad osa mälust välisele taimerile põhinedes. Sel viisil see ei sega süsteemi kasutamist. Ükskõik, millist moodust kasutades on vaja loendurit, mis oleks võimeline leidma järgmise rea DRAM-ist, mida on vaja regenereerida.

Veakontroll[muuda | redigeeri lähteteksti]

Veakontroll on kasutusel peamiselt DRAM tüüpi mäludes. Veakontrolli mõte seisneb selles, et teatud arvu bittide kohta arvutatakse kontrollsumma ning andmete mälust lugemisel kontrollitakse, kas summa on sama.

Paarsuskontrolliga mälud[muuda | redigeeri lähteteksti]

Paarsuskontrolliga mälude puhul hoitakse iga kaheksa biti (1 bait) kohta meeles veel ka paarsusbitti (kas 0 ja 1 oli kirjutatud andmetes paarisarv korda või mitte). Leiab mälust ühebitilisi vigu (kui on kaks viga järjest, siis ei pruugi viga avastada) ja vigu parandada ei suuda (puudub võimalus kindlaks teha kus viga oli).[5]

ECC (Error detection and correction)[muuda | redigeeri lähteteksti]

Märksa keerulisem veakontroll, avastab ka mitmebitilisi vigu ja võimaldab kohaldada ka veaparandust lihtsamatel juhtudel. Kasutusel peamiselt serverimäludes, vajab vastavat tuge emaplaadi poolt.[6]

Mälumoodulid[muuda | redigeeri lähteteksti]

Levinuimad DRAM pakkeformaadid. Ülevalt alla: DIP, SIPP, SIMM (30-pin), SIMM (72-pin), DIMM (168-pin), DDR DIMM (184-pin).
  • 30 pin SIMM oli üldse esimene mälumoodul, mida sai lihtsalt ilma tinutamiseta lisada ja vahetada.
  • SIMM - Single Inline Memory Module Mõlemal pool on 30 pinni, niiet paistab nagu oleks 60 aga nad on elektriliselt identsed. Andmevahetus protsessoriga käib 8 või 9 biti kaupa. 9 biti puhul on üks paarsuse kontrolli bitt. Moodulite mahud on 256KB - 16MB. Toitepinge 5 V ja kiirused 60 ns - 80 ns. Niisuguseid mälusid võib näha 286, 386 ja vanemates 486 tüüpi protsessoriga arvutites. Kuna 486 mälusiin on 32 bitine, saab lisada ainult 4 tükki korraga.
  • 72 pin FPM SIMM tuntud ka non-edo nime all. Pinne on rohkem sest see mälu on juba 32 bitine. Paarsuskontrolliga 36 bitti (iga baidi jaoks üks bitt juurde). FPM - Fast Page Mode on DRAM tüüp, mis võimaldab kiiremat juurdepääsu andmetele, mis asuvad samas mälupiirkonnas. Suurused 4 - 32 MB. Toide 5 V. Kiirused 60 - 70 ns. Esineb 486 ja vanades Pentium(ka Pro) arvutites.
  • 72 pin EDO SIMM välimuselt FPM mälust eristamatu aga 486 peal tavaliselt ei tööta. EDO - Extended Data Output palju kiirem kui FPM. Toide 3.3 V. Suurus kuni 128 MB. Kuna Pentiumi mälusiin on 64 bitine, saab lisada ainult 2 tükki korraga.
  • 168 pin EDO DIMM näeb välja nagu "tavaline" mälu aga tegelikult ei ole. EDO DIMMid käisid vanasti kallimatesse Pentium ja Pentium Pro tüüpi arvutitesse.
  • DIMM - Double Inline Memory Module. DIMM on nagu kaks SIMMi. 64 bitine. Paarsusega vastavalt 72 ja ECC-ga 80 bitti. Saab ühekaupa panna. Suurused 32 - 128 MB. Kiirus 60 ns. Toide 3.3 V. ECC - Error Checking and Correction. Rohkem mälu - rohkem võimalusi vigade tekkeks. ECC parandab vigu ja mälu on seetõttu mõnevõrra aeglasem (~2%). ECC ja mitte-ECC mälusid ei saa koos kasutada.
  • 168 pin SDRAM DIMM [7]

Turvalisus[muuda | redigeeri lähteteksti]

Princetoni Ülikooli teadlased avaldasid mahuka uurimuse milles tutvustasid uudset kõvaketta krüpteeringu vahenditest möödamineku meetodit. Lühidalt on siiani arvatud, et DRAM mälust kustuvad andmed peale arvuti taaskäivitust või väljalülitust. Selgub, et sõltuvalt mälu tüübist pole see päris nii. Andmed DRAM mälus võivad säilida peale arvuti väljalülitamist veel minuteid. Jahutades mälusid freooniga on võimalik saavutada veelgi pikemat ajavahemikku, mille jooksul on piisavalt aega mälude ümbertõstmiseks teise arvutisse, kust võib välja lugeda mälus olevad andmed nagu näiteks paroolid ja krüptovõtmed. Teadurid demonstreerisid näitena edukalt Mona Lisa bitmap pildi taastamist mälust. Samuti rünnati edukalt populaarseid krüptovahendeid nagu: BitLocker (Windows Vista), FileVault (Mac OS X), dm-crypt (Linux) ja TrueCrypt (Windows, Linux, Mac OS X). Enim ohustatuna võiksid end tunda varastatud laptopi omanikud, kel on kalduvus hoida oma arvutit sisselülitatuna. Kasutajakonto lukustamine sellise rünnaku puhul ei aita.[8]

DRAMi kondensaator[muuda | redigeeri lähteteksti]

Rahvusvaheline pooljuhttööstuse teekaart (ingl. k. > ITRS- International Technology Roadmap for Semiconductors) on juba aastaid toonud välja järgmiste põlvkondade DRAMi kondensaatorite parameetrite nõutavad väärtused [9]. Neid väärtusi võetakse kui eesmärke DRAMi arendustöös. Kuivõrd üldine trend elektroonikatööstuses on üha vähenevad seadiste mõõtmed (Moore seadus), vajatakse ka DRAM kondensaatorite puhul üha uusi lahendusi mõõtmete vähendamiseks ilma, et olulised parameetrid halveneksid. Olulisemad parameetrid on (sulgudes ITRS nõuded aastaks 2017):

(a) suur mahtuvustihedus (≥ 25 fF/mälurakk)

(b) kõrge dielektriline läbitavus (≥ 60)

(c) väikesed mäluraku mõõtmed (≤ 0,0024 µm2/mälurakk)

(d) suhteliselt madal valmistamisprotsessi temperatuur (≤ 650˚C)

(e) väikesed lekkevoolud (≤ 107,9 nA/cm2)

(f) väike kondensaatori dielektrikkihi paksus (≤ 7 nm)

(g) väike CET (ingl. k. > Capacitance effective thickness) (≤ 0,45 nm)

Vaata ka[muuda | redigeeri lähteteksti]

Viited[muuda | redigeeri lähteteksti]