Muisti

Muisti on talletustila, joka muodostuu tavallisesti kahdeksan bitin (tavun) kokoisista muistipaikoista. Jokaisella muistipaikalla on yksikäsitteinen osoite, jonka avulla ko. muistipaikan sisältöä voidaan käsitellä. Muistin kokoa mitataan kilotavuissa (kt tai kB) ja megatavuissa (Mt tai MB). Yksi kilotavu ei ole tasan tuhat tavua, vaan 1kt=210=1024t. Vastaavasti 1Mt=220t=1048576t.

Käytettävän muistin määrää rajoittaa moni tekijä: prosessorin osoiteväylän leveyden määräämä maksimi (esim. 64 GB), emolevyn piirisarjan asettama yläraja (esim. 512 MB) ja emolevylle mahtuvien muistikampojen lukumäärä (esim. 4 kpl).

Emolevyllä olevan välimuistin määrä voi myös osaltaan rajoittaa järkevästi käytössä olevan keskusmuistin määrä. Välimuistia pitää olla tarpeeksi varsinaiseen muistimäärään nähden tai osa muistista jää välimuistin ulkopuolella ja kaikki sieltä tehtävät muistihaut hidastuvat. Oikea välimuistin määrä selviää yleensä emolevyn manuaalista. Uusimmissa emolevyissä välimuistia on lähes aina tarpeeksi eikä tällaista ongelmaa enää esiinny.

Varsinaisen muistin loppuessa käyttöjärjestelmä osaa yleensä käyttää myös ns. virtuaalimuistia. Ohjelman pyytäessä käyttöjärjestelmältä muistia niin käyttöjärjestelmä saattaa heittää sillä hetkellä muistissa odotustilassa/pysähtyneenä olevan ohjelman osia sivuun kiintolevylle ja antaa vapautuneen muistitilan toisen ohjelman käyttöön. Kiintolevylle siirretyn ohjelman herätessä toimintaan käyttöjärjestelmä heittää taas syrjään jonkin muun ohjelman osia muistista ja antaa muistia heränneelle ohjelmalle. Tämä mahdollistaa hyvinkin paljon muistia tarvitsevien ohjelmien käyttämisen vaikka koneessa ei fyysisesti olisikaan paljon keskusmuistia. Virtuaalimuistin käyttäminen on kuitenkin erittäin hidasta eikä se missään vaiheessa kunnolla korvaa oikeaa muistia.

Muisti jaetaan kahteen pääryhmään, ROM (Read Only Memory) ja RAM (Random Access Memory).

Graphic8

ROM (Read Only Memory)

ROM-muistia voidaan ainoastaan lukea. Sitä ei käytetä ohjelmien toteuttamiseen tai ohjelmatietojen tallentamiseen, vaan siellä on tietokoneeseen liittyviä pysyviä tietoja ja tietokoneen käynnistämiseen vaadittavat ohjelmat esim. BIOS. ROM-muistista ei katoa tietoja virrankatkaisun yhteydessä. ROM-muisteista on useita erilaisia versioita, jotka hieman hämärtävät ROMin ja RAMin eroa. ROM-piirit kuitenkin aina säilyttävät tietonsa virrankatkaisunkin jälkeen.

Graphic9

Programmable ROM (PROM)

PROM on ROM-piiri, johon voidaan yhden kerran kirjoittaa tietoa erityisesti tähän tarkoitukseen sopivalla laitteella. Vastaa lähinnä CD-R-levyä.

Erasable Programmable ROM (EPROM)

EPROM on edelleen PROMista kehitetty versio, joka voidaan kirjoittaa uudelleen useaan kertaan sopivalla lisälaitteella.

Electrically Erasable Programmable ROM (EEPROM)

EEPROM on nykyaikaisin versio ROM-piireistä. EEPROM-piirin sisällön voi uudelleenkirjoittaa ohjelmallisesti. Näitä piirejä käytetään nykyään lähes kaikkien emolevyjen BIOS-piireinä. Monesti vastaan tuleva käsite Flash BIOS tarkoittaa juuri EEPROM-piirillä varustettua BIOSia, joka voidaan ns. flashata eli uudelleenkirjoittaa sopivalla ohjelmistolla.

RAM (Random Access Memory)

RAM-muisti on ohjelmien työmuisti (käyttömuisti), joka tyhjenee aina virrankatkaisun yhteydessä. RAM-muistiin latautuvat käyttöjärjestelmän ohjelmat, suoritettavat sovellukset sekä näiden tarvitsemat tiedot. Kun puhutaan tietokoneen muistin määrästä, niin silloin tarkoitetaan juuri RAM-muistin kokoa. Ohjelmat kasvattavat kokoaan vuosi vuodelta ja muistiakin tarvitaan aina vain enemmän. Erityisesti multimedian suosio on kasvattanut muistin tarvetta, sillä kuvan- ja äänenkäsittely vaatii erittäin paljon muistitilaa. Muistin määrän kasvattaminen onkin helpoimpia keinoja tehostaa koneen toimintaa. Muistia on saatavilla kuitenkin hyvin monenlaista eikä aina ole ollenkaan selvää, mikä on juuri sitä tyyppiä, jota kenenkin kone kaipaa.

RAM-muisti on usein dynaamista (DRAM) eli prosessori virkistää muistia sähköimpulsseilla muutaman sekunnin tuhannesosan välein. Tällä tekniikalla päästään pieneen kokoon ja vähäiseen virran kulutukseen. Staattista RAM-muistia (SRAM) ei tarvitse virkistää, riittää kunhan piirit saavat virtaa. Erityistekniikoilla voidaan rakentaa puolijohdemuisteja, joilla on hyvin pieni virrankulutus. Nämä soveltuvat esimerkiksi akku- tai paristokäyttöisiin mikrotietokoneisiin.

Muistipiirit asennetaan joko emolevylle tai erilliselle lisäkortille. Muistia ei voida kuitenkaan kasvattaa loputtomasti. Prosessorin tyyppi kertoo, kuinka suuri muistimäärä teoriassa koneeseen voidaan asentaa. Muistin nopeuden (saantiajan) on myös oltava suhteessa prosessorin kellotaajuuteen. Jos muistipiirit ovat liian hitaita, niin prosessori joutuu odottelemaan. Tämä odottelu (wait-state) tietenkin hidastaa koneen toimintaa.

SRAM (Static Random Access Memory)

SRAM on hyvin nopeaa muistia, jota käytetään useimmiten prosessorien välimuisteissa. Saatavilla on piirejä, jotka ovat nopeudeltaan 5 ns - 12 ns ja kooltaan 64 - 512 kilotavua. SRAM ei tarvitse jatkuvaa päivitystä säilyttääkseen sisältönsä. Pelkkä virransyöttö riittää. SRAM-piirit ovat kuitenkin kalliita valmiista ja ne ovat fyysisesti suurikokoisia, eikä niillä siten voida korvata DRAMin käyttöä keskusmuistissa.

DRAM (Dynamic Random Access Memory)

Graphic10

Yleisin tällä hetkellä käytössä oleva muistityyppi on DRAM. DRAM-piirejä saa tällä hetkellä 45 - 200 nanosekunnin nopeuksisina. Muistipiirien nopeus määritellään nanosekunteina, joka kertoo kuinka kauan menee aikaa muistipiirin sisällön lukemiseen. Mitä pienempi arvo sitä nopeampi piiri. DRAM-piiriä täytyy lukea jatkuvasti monta kertaa sekunnissa, jolloin piiri samalla virkistää sisältönsä. Jos piiriä ei lueta jatkuvasti niin se kadottaa varauksensa ja samalla sisältämänsä tiedon. DRAM-piirit ovat huomattavasti halvempia valmistaa ja myös pienikokoisempia kuin SRAM-piirit. DRAM onkin yleisin tietokoneen keskusmuistissa käytetty piirityyppi.

Perinteisin versio DRAM-piiristä on ns. asynkronista muistia eli sitä luetaan eri kellotaajuudella kuin prosessorin ulkoinen väylä toimii. Uudet SDRAM-piirit (Synchronous DRAM) toimivat samalla nopeudella prosessorin ulkoisen väylän kanssa.

Tietokoneessa olevan muistin käsittelynopeus riippuu ensisijaisesti BIOSin asetuksista. BIOS osaa yleensä automaattisesti määritellä asetukset muistin käsittelyyn mutta niitä voidaan myös itse muuttaa. Asetusten pitää olla käytetyn muistipiirin nopeuden mukaisia. Liian nopeat asetukset aiheuttavat muistivirheitä.

DRAMin nopeus ilmaistaan nanosekunteina (ns) ja odotusjaksoina (wait state). Nanosekunnit kertovat kuinka nopeasti muistista saadaan tehtyä ensimmäinen lukuoperaatio. DRAMin nopeus on yleensä 50-70ns ja SDRAMin 7 - 12 ns. SDRAMin yhteydessä nopeus ei tarkoita ensimmäisen lukuoperaation nopeutta, joka on yhtä hidas kuin DRAMilla vaan sen jälkeen tulevien lukuoperaatioiden nopeutta. Odotusjaksoina ilmoitettuna DRAMin maksiminopeus on yleensä 5-2-2-2, SDRAMin 5-1-1-1 ja SRAMin 2-1-1-1. Numerot tarkoittaa neljää peräkkäistä lukuoperaatiota, joista ensimmäinen kestää aina kauan ja heti perään tulevat onnistuvat nopeammin. Luku tarkoittaa kuinka monta kellojaksoa (clock tick) prosessori joutuu odottamaan. Yksi kellojakso tarkoittaa pienintä systeemikellon ajanjaksoa.

Tavallisimmissa muistipiireissä ei ole minkäänlaista virheentarkistusta. Joissakin saattaa olla mukana ns. pariteettibitti (parity) eli yksi ylimääräinen bitti jokaista talletettavaa kahdeksaa bittiä kohti. Tätä ylimääräistä bittiä käytetään apuna laskettaessa monimutkaisia tarkistussummia, jotka saattavat paljastaa mutta eivät korjata muistivirheitä. Uusimmissa ja kalleimmissa muistipiireissä on ns. ECC (Error-Correcting Code) -muistintarkistus, joka osaa myös korjata pieniä virheitä. Tälläistä muistia käytetään kuitenkin yleensä vain palvelimissa eikä niinkään kotikoneissa.

DRAM-muistipiirejä on vuosien kuluessa tullut markkinoille montaa erilaista tyyppiä. Seuraavassa lyhyesti käsiteltynä tällä hetkellä yleisimmät.

FPM(Fast Page Mode) oli useamman vuoden ajan suosituin versio DRAM-tyyppisistä muisteista. DRAM-muisteja luetaan rivi ja sarake osoitteiden mukaan ja FPM-piirit on toteutettu siten, että ne pystyvät lukemaan nopeasti samalla rivillä olevaa tietoa ilman että tarvitsee toistaa rivin osoitetta. Nopeus n. 5-3-3-3 kellojaksoa ja 50-70 ns.

EDO (Extended Data Output) on viimeisin versio asynkronisista DRAM-piireistä. Perinteiset FPM-piirit ovat n. 10-15% hitaampia kuin EDO-piirit, koska EDOissa uusi haku muistista voi alkaa jo ennen edellisen loppumista. Nopeus on parhaimmillaan 5-2-2-2 kellojaksoa ja 50-70ns.

SDRAM (Synchronous Dynamic Random Access Memory) vaatii samalla tavalla päivittämistä kuin tavallinenkin DRAM. SDRAM kuitenkin pystyy synkronoimaan kirjoitus- ja lukusignaalit systeemin kellotaajuuden mukaan, mikä mahdollistaa huomattavasti suurempia nopeuksia kuin tavallisilla DRAM-pohjaisilla piireillä on mahdollista. Tällä hetkellä on saatavilla 66MHz - 133MHz nopeuksiin pystyviä SDRAM-piirejä. FPM- tai EDO-piirit alkavat tippua vauhdista jo 75MHz jälkeen.

SDRAM-piirien nopeus ilmoitetaan harhaanjohtavasti olevan 7 - 12ns. Tämä nopeus tarkoittaa kuitenkin vasta ensimmäisen lukuoperaation jälkeisiä lukuoperaatioita, ensimmäinen lukuoperaatio on yhtä hidas kuin EDO-muistillakin. Kellojaksoina ilmaistuna SDRAM kuitenkin selkeästi voittaa EDO-piirit: 5-1-1-1.

Hankittaessa SDRAM-tyyppistä muistia täytyy osata hankkia tarpeeksi nopeaa muistia tietokoneen ulkoisen väylänopeuden mukaan. Pelkät megahertzilukemat eivät välttämättä kerro koko totuutta muistin nopeudesta. PC-100 tai PC-133 merkinnät tarkoittavat kyseisten piirien pystyvän toimintaan 100 MHz:in ja 133 MHz:n väylissä.

DDRAM (Double Data Rate SDRAM) on kaksi kertaa tavallista SDRAMia nopeampaa muistia, jota käytetään erityisesti AMD:n nopeiden prosessorien kanssa.

Quad Data Rate SRAM) on edelleen kaksi kertaa DDRAMia nopeampi muisti jota käytetään erityisesti Intelin Pentium IV -prosessorien kanssa.

RDRAM (Rambus DRAM) on uusin ja nopein tällä hetkellä markkinoilla olevista muistityypeistä. Nopeus ero DDRAMiin ja QDRAMiin ei ole kuitenkaan merkittävä. RDRAM toimii enemmän huippunopean väylän tapaan kuin perinteisen muistipiirin tyyliin. Muista käytössä olevista muistipiireistä poiketen RDRAM:ia luetaan vain 16-bittiä leveää väylää pitkin, joka kuitenkin toimii jopa huikealla 1600 MHz nopeudella! RDRAM on vielä kallista valmistaa koska Rambus vaatii suuria lisenssimaksuja tekniikkansa käyttämisestä.

SLDRAM on RDRAMin kanssa kilpaileva muististandardi, joka ei vaadi huikeita lisenssimaksuja.

Muistikammat

Muistia ei enää nykyään juurikaan toimiteta piireittäin vaan muisti on valmiiksi pakattuna erilaisiin kampoihin (moduuleihin). Muistikammoista ja niiden asentamisesta tarkemmin tietokoneen asentamista käsittelevässä luvussa.

SIMMit (Single In-line Memory Module) ovat yleisin käytetty muistimoduuli. Niitä on saatavilla 30-pinnisinä (8/9 bittiä) ja 72-pinnisinä (32/36 bittiä) versioina. SIMMejä hankittaessa on syytä varmistaa kumman kokoisia tarvitsee. SIMMit ovat kooltaan yleensä 256 kilotavun ja 128 megatavun väliltä.

Kannettavissa tietokoneissa käytetään SO-DIMM-kampoja, jotka ovat kavennettuja ja kutistettuja versioita tavallisista SIMM-kammoista.

DIMMejä (Dual In-line Memory Module) on kahta tyyppiä: 168-pinnisiä ja 144-pinnisiä. Kapeampia kutsutaan SODIMMeiksi (Small Outline DIMMs) ja niitä käytetään yleensä kannettavissa tietokoneissa. 168-pinnisiä DIMMejä on kooltaan 8 - 128 megatavuisia. DIMMit ovat 64-bittisiä.

RDRAM-muistia toimitetaan RIMM-kampoina, jotka ovat hyvin samankaltaisia kuin DIMMit.

Customer: "You people owe me a new computer."

Tech Support: "You're having trouble with your computer? What seems to be the problem?"

Customer: "Well, I bought some memory from you people, and ever since I installed it into my computer, it's been doing nothing but making grinding noises, and nothing works anymore!"

Tech Support: "Grinding noises?? It shouldn't be doing that!"

Customer: "I know that! That's why you people owe me a new computer, and I'm going to charge you for lost

downtime and my inconvenience."

Grinding noises from SIMMs? This was a new one.

Tech Support: "Sir, did you install those chips yourself or did someone do it for you?"

Customer: "I'm not an idiot! I did it myself. I put them right in that slot in the front of the computer, smart aleck."

Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
Copyright © Tommi Lahtonen (tommi.j.lahtonen@jyu.fi)<URL: http://www.iki.fi/hazor/>
Petri Heinonen (peheinon@mit.jyu.fi)<URL: http://www.mit.jyu.fi/peheinon/>