Mälumoodul

**Mälumoodul** on suure arvu viikudega trükkplaat, millele on monteeritud  mälukiibid. Neid kasutatakse personaalarvutites, tööjaamades ja serverites.

## Moodulitüübid
Personaalarvutites on (või on olnud) kasutusel järgmist tüüpi moodulid:
* SIMM (*Single Inline Memory Module*), ühe viigureaga:
** 8 biti laiune moodul, 30 viiku
** PS/2-SIMM, 32 biti laiune, 72 viiku
* DIMM (*Dual Inline Memory Module*), kahe viigureaga, 64 biti laiune, kiipidega:
** SDRAM (Synchronous   Random Access Memory)
** DDR SDRAM
** DDR2 SDRAM
** DDR3 SDRAM
** DDR4 SDRAM
** SO-DIMM (*Small Outline Dual Inline Memory Module*), sülearvuteile 
** Micro-DIMM (**Micro Dual-Inline Memory Module**)
* RIMM (*Rambus Inline Memory Module*), 16 biti laiune
* SO-RIMM (*Small Outline Rambus Inline Memory Module*)

### SIMM
Üksikute kiipide emaplaadile paneku asemel võeti kasutusele mälumoodulid, et mälu oleks korralikult kinni, aga samas ka vahetatav. DIMM-mälukiibid on juba mooduli külge joodetud, nii et neid vahetada ei saa, küll aga saab mälusid vahetada mooduli kaupa. Varasematel mälumoodulitel oli üks rida elektrilisi kontakte, ja seeläbi oli nende nimi SIMM (ingl k : *Single In-line Memory Module*) ehk üherealine mälumoodul. Mälumooduli pesadel on ääres spetsiaalsed kinnitused, et ühendus muutmälu ja emaplaadi vahel kindlalt püsiks. Kasutusel on erinevaid tüüpe SIMM-mälusid, näiteks 30 ja 72 viiguga.. Neid mälusid kasutati peamiselt 1980. aastate lõpust 1990. aastate lõpuni; tänapäeval on SIMM-mälude kasutus väga harv.

## DIMM
* DDR2 ja DDR3 DIMM-idel on 240 viiku, kaks sälku (sisselõiget) mõlemal küljel ja üks kontaktpinna keskpunkti lähedal, aga mitte samades kohtades.*
* DDR4 DIMM-il on 288 viiku ja sisselõiked sarnaselt DDR3 ja DDR4 DIMM-idega.

Kõik DIMM-standardid on kas 64-bitised või ka 72-bitised, siis kas paarsusbiti või ECC (*Error-Correcting Code*) veatõejekoodita veatõrjekoodiga.

### SODIMM

Süle- ja tahvelarvutite, väikeste personaalarvutite ja võrguriistvara tarvis on loodud ka DIMM-i väiksem alternatiiv SODIMM (ingl k: *Small Outline Dual In-line Memory Module*). Need on DIMM-ist umbes poole väiksemad. Sarnaselt DIMM-iga on ka neil DDR, DDR2, DDR3 ja DDR4 standardeile vastavad kiibid.
Vaatamata kompaktsusele on SODIMM-id enamasti sama kiirusega nagu DIMM-id ja kasutavad sama toitepinget.

### LPDDR

LPDDR (ingl k: *Low Power DDR)* on väga väikese energiatarbega DDR-mälumoodul, mis on mõeldud eeskätt nutitelefonidele ja tahvelarvutitele. Need moodulid on väiksemad kui DDR-mälud. Lisaks sellele uuendavad LPDDR-id ennast olenevalt tingimustest harvemini ja omavad olekut "*deep power down",* mis tähendab seda, et kogu mälu sisu unustatakse.

## Registritega moodulid
DIMM-id on kas registritega või registriteta. Enamik mooduleid luuakse registriteta, sest see on lihtsam, odavam ning samuti ka efektiivsem ja kiirem moodus. Registriteta moodulitel liiguvad mälukontrolleri signaalid otse kiibini.

Probleem registriteta moodulite juures on aga see, et emaplaadi tootjad peavad piirama mooduli soklite ja moodulil asuvate kiipide arvu. Masinad, mis vajavad suuremahulist muutmälu, nagu näiteks serverid, kasutavad tihti registritega mooduleid. Registri kiibid töötavad liidesena kiibistiku ja mälukiipide vahel. Nad hoiavad ajutiselt andmeid, mis liiguvad mälukiibile ja sealt tagasi. Tänu sellele saab moodulile panna palju rohkem mälukiipe, kui kiibistik muidu lubaks. Registritega DIMM-id on tavaliselt kõrgemad kui tavalised. Emaplaadid toetavad vaid kas registritega või registriteta mälumooduleid, mitte mõlemat.

## Moodulite mahutavus
Mälumooduli mahutavus saadakse ühe mälukiibi mahutavuse ja kiipide arvu korrutisena.

Näiteks on moodulil 16 kiipi tüübitähisega GM72V16821CT10K. Selle kiibi spetsifikatsiooni kohaselt on andmed kiibil kahe kiibikomplektina (*dual rank*), kummaski 524&nbsp;288 (=&nbsp;219) masinasõna pikkusega 16 = 24 bitti. Seega mahutab üks kiip 2×219×24 = 224 = 16&nbsp;777&nbsp;216&nbsp;bitti. Moodul, millel on 16 niisugust kiipi, mahutab 224×16 = 228 bitti. Siis kiibi mahutavus baitides (1 B = 8 bit = 23 bit):
: 2(28–3)&nbsp;B = 33&nbsp;554&nbsp;432&nbsp;B (baiti) ehk 32 MiB (mibibaiti).

Mõnel moodulitüübil on lisaks üks või kaks lisakiipi (sama või muud tüüpi) veaparanduse (ECC) info salvestamiseks. Sel juhul kasutab bait 9 bitti: 8 andmebitti + 1 kontrollbitt 

## ''Rank''idega moodulid
Vajaliku mahutavuse ja siinilaiuse saavutamiseks pannakse moodulil teatav arv mälukiipe koos töötama.

DDR-moodulid kasutavad andmete edastamiseks 64 biti laiust (64-juhtmelist) paralleelsiini. Veaparandusega (ECC) mooduli korral on siini laius 72 bitti. Moodulites kasutatakse 4, 8 ja 16 biti laiuseid kiipe (sama arvu andmejuhtmeid vajab iga kiip mooduliga ühendamiseks).  Kui mälukiibi laius on näiteks 8 bitti, siis vajab 64-bitine siin 8 sellist kiipi (ECC rakendamise korral 9 kiipi). Vastavalt on 4-bitiseid kiipe vaja 16 ja 16-bitiseid kiipe 4.
Niisuguse 64-bitise kogulaiusega adresseeritava kiibikomplekti kohta kasutab pooljuhtelektroonika standardiorganisatsioon JEDEC terminit *rank*. 

Mälumoodulil võib olla üks, kaks või neli *rank*i, mis on sõltumatult adresseeritavad: 
* *single rank*  = 64 bit
* *dual rank* = 64 bit + 64 bit
* *quad rank*  =  64 bit + 64 bit + 64 bit + 64 bit

Iga 64-bitinedual rank* moodul töötab samamoodi kui kaks tavalist eraldi moodulit, aga et korraga on andmesiinile juurdepääs ainult ühel kanalil, siis väheneb töökiirus. 

Kui ühe *rank*i mahutavus on näiteks 4 GB, siis moodulil *dual rank DIMM* on see 8 GB ja *quad rank DIMM* 16 GB.



== Vead ==
Tahes tahtmata tekivad mäludes vead. Vigu liigitatakse laias laastus kaheks: rasked ja kerged vead. Rasked vead tulenevad näiteks mingist puudusest, füüsilisest kahjustusest või muust sarnasest, mille tulemusel lõpetab kiip töötamise ja ainsaks lahenduseks jääb välja vahetus. Kerged vead on ajutised vead, mis toimuvad mitteperioodiliste intervallide tagant.

Tänapäeval on suurim kergete vigade tekitaja kosmiline kiirgus, mida on efektiivselt võimatu vältida. Mida tihedamad on mälud, seda lihtsamini kerged vead tekivad. Oletatavalt on kergete vigade sagedus 64 MB DRAM-i puhul kaks korda suurem kui 16 MB kiibil ja 256 MB DRAM-il on see sagedus neli korda suurem.

Lisaks kosmilisele kiirgusele võivad kerged vead tekkida järgmiste tegurite mõjul:
* Voolukõikumine või müra traadil, mis võib tuleneda vigasest toiteplokist või pistikust.
* Vale mälu tüüp või kiiruse reiting, sest mälu ja kiibistiku kiirused ja tüübid peavad olema ühilduvad.
* Raadiolainete interferents, mis tuleneb raadiolainete saatjatest läheduses. Ka traadita võrgud, hiired ja klaviatuurid võivad tekitada raadiolainete interferentsi.
* Staatilised elektrilahendused, mis tekitavad hetkelisi vooluvõnkeid ja muudavad andmeid
* Ajastamise vead, kui andmed ei jõua õigel ajal õigesse kohta. See võib tekkida [[Baasvahetussüsteem|BIOS-i]] valedest seadetest, kui mälu on märgitud aeglasemaks kui vaja, või [[Ülekiirendamine|ülekiirendatud]] arvuti komponentidest.
* Ülekuumenemine
Parim viis selle probleemiga tegelemiseks on suurendada süsteemi veataluvust. Selleks kasutatavad meetodid on [[paarsuskontroll]] ja ECC (ing k: *Error-Correcting Code) ''veatõrjekood.

Vaatamata olemasolevatele meetoditele paljud süsteemid ülalnimetatud meetodeid ei kasuta. Põhjus on selles, et paarsuskontrolli ja veatõrjekoodi kasutamine kallis. Iga kaheksa biti kohta on paarsuskontrolliks vaja veel ühte bitti, mis tähendab, et sellises mälus on vaja 12,5% rohkem mälukiipe. Lisaks sellele peavad mälukontrolleris olema paarsuskontrolli või veatõrjekoodi arvutamiseks sobilikud loogikaüksused.

Paarsuskontrolli algoritm kontrollib, et ühtede arv oleks nii saatjas kui ka saajas kas paaris või paaritu. Vastasel juhul tuleb info uuesti saata. ECC veatõrjekood suudab jooksvalt parandada ühebitiseid vigu ja tuvastada kahebitiseid.

## Viited