Muisti (tietokone)

Muistityypit
Haihtuvat muistityypit
Haihtumattomat muistityypit

Muisti on tietokoneen osa, johon voidaan tallentaa tietoa. Tieto voidaan tallentaa sähkövarauksina, magneettisina varauksina tai optisesti luettavaan muotoon.

Tietokoneen muistin kapasiteetti mitataan bitteinä tai tavuina. Muistipiirien kapasiteetti ilmoitetaan yleensä bitin monikertoina, keskusmuistin kapasiteetti tavun monikertoina. 1980-luvulla mikrotietokoneissa oleva muistimäärä ilmoitettiin kilotavuina, nykyisissä älypuhelimissa on gigatavuja muistia ja supertietokoneissa on petatavuja muistia.

Modernissa tietokoneessa on muistia keskusmuistin lisäksi muun muassa näytönohjaimessa, oheislaitteissa kuten verkkokortissa, suorittimen sisäistä välimuistia ja niin edelleen.

HistoriaMuokkaa

Ensimmäisten tietokoneiden keskusmuisti oli toteutettu releillä tai elektroniputkilla. Massamuistina käytettiin paperisia reikänauhoja. 1940- ja 1950-luvuilla kehitettiin elohopeamuistit, joissa tieto tallennettiin akustisesti putken päästä toiseen eteneviin ääniaaltoihin.

Williams-putki oli katodisädeputki, jota käytettiin muistin tavoin: piste säilyi sekunnin murto-osan ennen haihtumistaan.[1] Ratkaisu oli ensimmäinen korkeanopeuksinen täysin elektroninen muisti.[1]

Magneettiset muistit syrjäyttivät muut muistitekniikat 1950-luvun lopulta lähtien. Keskusmuistina käytettiin aluksi rumpumuistia, jossa tieto tallennetaan nopeasti pyörivän rummun pinnalle. Ne hävisivät kuitenkin nopeasti ferriittirengasmuistille (engl. core memory, josta jäänteenä suom. ydinmuisti). Rengasmuisti koostuu pienistä ferriittirenkaista, joissa oleva magneettikenttä voi vaihtaa suuntaa myötäpäivään tai vastapäivään. Jokaiseen renkaaseen voidaan siis tallentaa yksi bitti.

Muita muistityyppejä olivat kuplamuisti ja kalvomuisti.

MOS-tekniikkaan perustuvan puolijohdemuistin (DRAM) keksi Robert Dennard vuonna 1966 ja sai sille patentin vuonna 1968.[2]

Yksi mikropiiri kykeni aluksi tallentamaan 1024 bittiä. Se oli huima parannus ferriittirengasmuisteihin verrattuna ja mikropiirit syrjäyttivät nopeasti rengasmuistit. Mostekin kehittämä menetelmä muistisolujen osoittamiseen mahdollisti hintojen pitämisen alhaisempana kapasiteetin kasvaessa, mikä vaikutti merkittävästi niiden suosioon.[3] Kilpailijoiden käyttämä muistinosoitusmenetelmä olisi vaatinut kalliimpia piirejä kun niiden kapasiteetti kasvaa.[3]

ArkkitehtuuritMuokkaa

Pääartikkeli: Muistiarkkitehtuuri

Tietokoneiden muistikäsittelyn ratkaisut vaihtelevat käyttötarkoituksen mukaan. Suurtietokoneet ja supertietokoneet sekä klusterit käyttävät erilaisia ratkaisuja kuin tavalliset henkilökohtaiset tietokoneet tai sulautetut järjestelmät.

Muistin käyttö- ja toteutustavatMuokkaa

Tietokoneen muistijärjestelmä toteutetaan tavallisesti käyttämällä useita erilaisia komponentteja muistin eri osien käyttötarpeiden mukaisesti. Muistit voidaan luokitella usean eri kriteerin perusteella eri tyyppeihin:

  • välimuisti tai keskusmuisti käyttötarkoituksen mukaan
  • hajasaanti-, suorasaanti ja sarjasaantimuisteihin muistin hakutavan perusteella
  • lukumuisteihin (ROM) ja luku-/kirjoitusmuisteihin (RAM) sen mukaan voidaanko muistiin kirjoittaa vai ei
  • haihtuviin ja haihtumattomiin muisteihin tiedon keston mukaan (volatile, non-volatile)
  • tallennusvälineen (media) perusteella levy-, nauha- tai puolijohdemuisteihin, ks. massamuisti

KeskusmuistitMuokkaa

Keskusmuisti on tietokoneohjelmien käyttämä työmuisti. Ohjelmat ja niiden käyttämät tiedot pitää hakea työmuistiin ennen kuin prosessori voi suorittaa tai käyttää niitä. Keskusmuistina käytetään DRAM-tyyppisiä puolijohdemuisteja.

Keskusmuistin toimintaa nopeutetaan tallentamalla sen useimmin käytetyt osat keskusyksikön yhteyteen sijoitettuun välimuistiin. Välimuistina käytetään SRAM-tyyppistä puolijohdemuistia.

Muistityypit voidaan yhdistää niin, että niitä kaikkia voidaan käyttää samaan tapaan. Näennäismuisti eli virtuaalimuisti laajentaa ohjelmien käytettävissä olevaa keskusmuistin kapasiteettia siirtämällä harvoin käytetyt keskusmuistin osat massamuistiin.

Muistin saantitavatMuokkaa

Muistit jaetaan niiden saantitavan mukaan kahteen luokkaan, suorasaantimuisteihin sekä sarjasaantimuisteihin. Sarjasaantimuistit käyttävät yleensä tietovälineenä nauhaa, suorasaantimuistit levyä. Sarjasaantimuisteissa koko nauhan sisältö voidaan joutua kelamaan lukupään ohi ennen kuin haluttuun tietoon päästään käsiksi. Suorasaantimuisteissa tietoalkio voidaan hakea suoraan sen osoitteen perusteella. Nykyisissä kiintolevyissä hakuaika on alle kymmenen millisekuntia. Lukupää siirtyy parissa millisekunnissa halutulle uralle ja koko uran sisältö voidaan lukea muutamassa millisekunnissa.

Hajasaantimuistit (engl. random access memory, RAM) erotetaan joskus omaksi luokakseen. Niissä minkä tahansa muistialkion haku tapahtuu mikrosekunnin murto-osassa. Hajasaantimuistit on nykyisin toteutettu puolijohteilla eikä niissä ole liikkuvia osia. Hajasaantimuisteja käytetään tavallisesti tietokoneen keskusmuistissa.

Haihtumattomat muistitMuokkaa

Muistit voidaan lisäksi jakaa kahteen luokkaan sen mukaan, häviääkö niihin tallennettu tieto virransyötön katketessa vai ei. Haihtumattomien muistien (engl. non-volatile memory) sisältö säilyy ilman virransyöttöä, haihtuvissa muisteissa (engl. volatile memory) ei.

Perinteisessä puolijohdemuisteissa tieto on tallennettu sähkövarauksina ja tieto haihtuu niiltä nopeasti virransyötön katketessa. Levy- ja nauhamuisteissa tieto on tallennettu magneettisesti tai optisesti ja se säilyy ilman tehonsyöttöä. Ne sopivatkin hyvin massamuisteiksi.

On myös olemassa puolijohdemuisteja (ROM, PROM, tai EPROM), joilta tieto ei häviä tai se häviää hyvin hitaasti. Niille tieto voidaan tallentaa joko valmistusvaiheessa tai sähköisesti erillisen tallennuslaitteen avulla. Nykyisin käytetään tavallisesti EEPROM-tyyppisiä flash-muisteja, joille lukeminen ja kirjoittaminen onnistuu lähes keskusmuistin tapaan.

Haihtumattomia muistityyppejä on kehityksessä useita kuten FeRAM ja MRAM.

Lukumuisti ja hajasaantimuistiMuokkaa

Lukumuistin (engl. read-only memory, ROM) sisältöä ei voi muuttaa. Luku-kirjoitusmuistin tai hajasaantimuistin (engl. read-write memory, RWM, engl. random access memory RAM) sisältöä voidaan muuttaa.

Virheenkorjaavamuisti (ECC, EDAC)Muokkaa

 
30-pinnistä SIMM-muistia, jossa yhdeksäs muistipiiri on käytössä pariteettitiedon säilömiseen.

Varhainen virheen havaitseminen DRAM-muisteissa perustui pariteettibittiin.[4] Myöhempi virheenkorjauskoodia käyttävä ECC-muisti perustuu Hamming-koodiin ja korjaa yhden bitin virheen sekä havaitsee kahden bitin virheen.[4] Eräät DRAM-muistit käyttävät monimutkaista sisäistä rakennetta, joka tekee virheen korjaavan EDAC-ominaisuuden toteuttamisesta vaikeampaa.[5]

MuistivirheetMuokkaa

Muistivirheet ovat bittien tilojen muuttumista toiseksi. Yleisimmät syyt muistin korruptoitumiseen ovat sähkömagneettiset häiriöt järjestelmässä tai sen välittömässä ympäristössä. Taustasäteilyn vaikutuksen on kuitenkin, enenevässä määrin, todettu muistivirheiden aiheuttajaksi.[4] Muistivirheet voivat sotkea tietokoneen käsittelemää tietoa tai jopa kaataa järjestelmän.

Muistivirheitä esiintyy useissa muistityypeissä, mukaan lukien DRAM ja Flash-muisti.[5] Googlen tutkimuksen mukaan virheet ovat yleisempiä kuin on raportoitu.[6] Googlen mukaan "kovat" virheet ovat tyypillisempiä kuin "pehmeät": kovat virheet ovat korjaamattomia kun taas pehmeät ovat hetkellisiä tapahtumia kuten taustasäteilyn aiheuttamia.[6]

TietoturvariskitMuokkaa

Tietojen korruptoitumisen lisäksi DRAM-piireissä olevia virheitä voidaan hyödyntää tietoturvahyökkäyksissä kuten Rowhammer.[7] Menetelmä pyrkii muuttamaan käyttäjän oikeuksia aiheuttamalla virhe (bitin tilan muutos) toistuvalla muistihaulla.[7][8]

Muistivirheiltä suojautuminenMuokkaa

EDAC (engl. Error Detection and Correction) tarkoittaa virheen ja havaitsemista ja korjaamista.[5]

Katso myösMuokkaa

LähteetMuokkaa

ViitteetMuokkaa

  1. a b Timeline of Computer History computerhistory.org. Viitattu 5.1.2021. (englanniksi) 
  2. The Invention of On-Demand Data IBM. Viitattu 8.2.2020. (englanniksi)
  3. a b Chip Hall of Fame: Mostek MK4096 4-Kilobit DRAM spectrum.ieee.org. 30.6.2017. Viitattu 20.1.2020. (englanniksi)
  4. a b c The Value of Using ECC Memory in Embedded Applications (PDF) lokakuu 2009. AMD. (englanniksi)
  5. a b c A. H. Johnston: Space Radiation Effects in Advanced Flash Memories (PDF) trs-new.jpl.nasa.gov. Arkistoitu . Viitattu 4.1.2021. (englanniksi)
  6. a b Stephen Shankland: Google: Computer memory flakier than expected cnet.com. 7.10.2009. Viitattu 4.1.2021. (englanniksi) 
  7. a b Dan Goodin: Cutting-edge hack gives super user status by exploiting DRAM weakness arstechnica.com. 10.3.2015. Viitattu 4.1.2021.
  8. Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors (PDF) users.ece.cmu.edu. Viitattu 5.1.2021. (englanniksi)

Aiheesta muuallaMuokkaa