dynaaminen käyttömuisti, jonka sisältö ei säily virkistämättä From Wikipedia, the free encyclopedia
DRAM (engl. Dynamic Random Access Memory) on hajasaantimuistin tyyppi, jossa jokainen bitti tallennetaan erilliseen kondensaattoriin. Muistisolun lukeminen purkaa kondensaattorin, joten jokaisen lukuoperaation yhteydessä luettu data tallennetaan takaisin muistisoluun. Koska kondensaattorin varaus ajan myötä purkautuu myös itsekseen, koko muisti vaatii säännöllistä virkistämistä (toisin kuin staattisessa RAM-muistissa).
DRAM-muistista on kehitetty eri tyyppejä, mm. FPM, EDO, SDRAM ja DDR SDRAM.
Varhaisia kehitysaskeleita oli Toshiban "TOSCAL" BC-1411 laskin, jossa oli kapasitiivinen dynaaminen RAM-muisti.[1][2] Laskimen diskreeteillä kondensaattoreilla saavutettiin 180 bitin muistikapasiteetti, jota erikoispiiri päivittää taajaan.[2]
Robert Dennard keksi MOS-tekniikkaan perustuvan DRAM-piirin vuonna 1966 ja sai sille patentin 3,387,286 vuonna 1968.[3][4][5] Dennardin ajatus oli että binääristä informaatiota voitaisiin säilöä positiivisena tai negatiivisena varauksena kondensaattorissa, mutta ongelmana oli varauksen häviäminen millisekunnissa.[6] Dennard kehitti ratkaisun, jossa kanavatransistori luki varauksen ja kirjoitti sen takaisin tuhansia kertoja sekunnissa.[6] Aikaisemmat ratkaisut olivat monimutkaisia ja vaativat paljon virtaa, jonka Dennard onnistui yksinkertaistamaan yhteen transistoriin.[6]
Ensimmäinen kaupallisesti saatava DRAM-muistipiiri oli Intel 1103 (1969), jonka koko oli 1 kbit[7]. 1 Mbit muistikoko saavutettiin 1984 ja 1 Gbit 1990-luvun lopulla[8].
DRAM-piirien muistiosoite koostuu kahdesta osasta, rivi- ja sarakeosoitteesta. Näihin molempiin käytetään yhteisiä osoitelinjoja. Tyypillisesti osoitteen ylimmät bitit sisältävät rivin, alimmat bitit sarakkeen.
Ensin valitaan aktivoitava rivi, ja kun muistipiiri on saanut rivin aktivoitua, sille ilmoitetaan tältä riviltä sarake, josta luetaan tai johon kirjoitetaan.
Muistipiirien kapasiteetti ilmoitetaan tyypillisesti kilobitteinä sekä piirin datan leveytenä: esimerkiksi 2 Mbit × 32 tarkoittaa 32-bittistä kahden megabitin muistia eli kahdeksan megatavun kapasiteettia. Yksi osoite viittaa siis aina dataleveyden kokoiseen datamäärään. Kun muistin leveys on jotain muuta kuin prosessorin muistiosoituksen leveys (joka on yleensä 8 bittiä), koneen muistiohjain tekee muutoksen muistin käyttämien ja prosessorin käyttämien osoitteiden välillä.
SDRAM toimii 3,3 voltilla, FPM ja EDO (pakkaus yleensä on SIMM) toimivat 5 voltilla.
PC-tietokoneiden vanhemmissa emolevyissä oli mahdollista käyttää sekä SDRAM DIMMejä että EDO SIMMejä. Näissä tehonsyöttö oli erikseen DIMMille ja SIMMille, mutta dataväylä oli yhdessä. Jos molempia laittaa samalle emolevylle, SDRAMin 3,3 voltin tulo tuhoutuu hetken jälkeen SIMMin 5 voltin syöttöjännitteen vuoksi.
DRAM-muistityyppejä on kehitetty useita eri versioita, kuten FPM, EDO, SDRAM, DDR, DDR2, DDR3 ja DDR4.
PC-tietokoneissa nämä muistityypit ovat usein käytössä keskusmuistina ja ne liitetään tietokoneeseen muistikampoina. Muistikampoja on yksipuolisella liittimellä (SIMM) ja nykyään kaksipuolisella liittimellä (DIMM). Pieniä tietokoneita, kuten kannettavia varten käyttöön tuli SODIMM (Small Outline Dual In-line Memory Module) liitin. Aiemmin tietokoneissa on ollut käytössä mm. ZIF liitäntäisiä muistimoduuleja.
Mobiililaitteissa, kuten puhelimissa käytetään DRAM-muistien vähävirtaista versiota.[9]
PlayStation 4 käyttää vain GDDR5-muistia, joka on jaettu sekä CPU- että GPU- toimintojen välillä.
FPM (engl. Fast Page Mode) on 1990-luvun alussa esitelty muistityyppi.[10]
Se sallii lukemisen samalta riviltä jokaisesta sarakkeesta kerralla siten, että vain sarakeosoitetta muutetaan. Aiemmin muistia luettiin sekä rivi että sarake asettamalla.[10]
FPM-muistin hakuaika oli tyypillisesti 100–60 ns.
FPM-muisti ei ollut synkronoitu kellosignaaliin, mutta tyypillisesti sen nopeus sopi prosessorien väylänopeuteen siten, että prosessorilta kului peräkkäisen datan lukemiseen väyläkellojaksoja sarjan 5-3-3-3 verran. Esimerkiksi välimuistilinjan täyttäminen muistista neljässä kellojaksossa kului kokonaisuudessaan näiden summan verran väyläkellojaksoja eli 14.
EDO (engl. Extended Data Out RAM) tuli käyttöön 1990-luvun puolivälissä.[11]
FPM poistaa datan lähdöstään aina, kun se alkaa hakea dataa uudesta osoitteesta. EDO pitää edellisen datan lähdössä kunnes uusi on löytynyt. Näin tarvittavien kellopulssien määrä vähenee yhdellä, ja tyypillisesti suoritin pystyy EDO-muistia lukemaan muistista kellopulssisarjalla 5-2-2-2 eli välimuistilinjan täyttäminen neljästä peräkkäisestä osoitteesta vie EDO-muistin kanssa 11 kellojaksoa.
EDO-muistit toimivat tyypillisesti 70–50 ns nopeudella.
SDRAM (engl. Synchronous Dynamic Random Access Memory) esiteltiin 1996.[12] SDRAM:in on myöhemmin syrjäyttänyt DDR SDRAM.
SDRAM vaatii samalla tavalla virkistämistä kuin tavallinenkin DRAM. SDRAM on edeltäjistään poiketen synkronoitu kellosignaaliin, mikä mahdollistaa muistiväylän paremman liukuhihnoittamisen ja siten nopeamman peräkkäisen datansiirron. Hakuaikaa SDRAM ei kuitenkaan paranna, vaan saattaa jopa hiukan huonontaa (koska pitää aina odottaa kellonreunaa ennen kuin muistille voi antaa komentoja). SDRAM pystyy antamaan peräkkäistä dataa ulos peräkkäisinä kellojaksoina. SDRAMit pystyvät siis tyypillisesti antamaan peräkkäisiä data-alkioita ajoituksella 5-1-1-1 eli neljän data-alkion kokoisen välimuistilinjan täyttämiseen kuluu 8 väyläkellojaksoa.
SDRAM-muistien hakuaika ilmoitetaan kellojaksolukemina, eli paljonko aikaa kuluu signaalin jälkeen ennen kuin piiri antaa dataa, tai piirille voidaan antaa seuraava ohjaussignaali.
CAS-latenssi (CL, CAS latency) on kellojaksomäärä jonka kuluttua sarakeosoitteen antamisesta piiri alkaa antaa dataa ulos. Se on tyypillisesti 2 tai 3 kellojaksoa. RAS-To-CAS latency ilmoittaa kellojaksoissa kuinka pian riviosoitteen antamisesta voidaan piirille antaa sarakeosoite. Tyypillisesti tämä latenssi on 2 tai 3 kellojaksoa.
Jos dataa luetaan täysin uudesta osoitteesta, pitää siis odottaa molempien viiveiden summan verran, mutta jos dataa luetaan samalta riviltä, kuin mistä viimeksi luettiin, riittää pelkkä CAS-viive.
SDRAM-muisteja on valmistettu noin 66–200 MHz kellotaajuudella, tosin koneiden keskusmuisteiksi vain 66, 100 ja 133 MHz -standardeilla (alkuperäinen, PC100 ja PC133). Nopeammat ovat olleet erikoismuisteja näytönohjaimiin. Monet muistit pystyivät pienemmällä kellojaksolla toimiessaan pienempiin viiveisiin, muistin CAS-hakuaika 133 MHz:lla saattoi olla 3 kellojaksoa eli 22 ns, mutta 100 MHz:lla 2 kellojaksoa eli 20 ns.
SGRAM (engl. Synchronous graphics RAM) on näytönohjaimien grafiikkamuistiin tarkoitettu erikoistunut versio SDRAMista. Esimerkkejä toiminnoista ovat "Block Write" ja "Mask Write".[13]
SGRAM muistityyppiä käytetään standardeissa, kuten GDDR5.
DDR-SDRAM (engl. double data rate synchronous dynamic random access memory) on vuonna 2000 esitelty muistityyppi.[12]
DDR-SDRAM on toiminnaltaan hyvin samanlainen kuin SDRAM-muistityyppi. Nimensä mukaisesti se kuitenkin kaksinkertaistaa siirrettävän tiedon määrän verrattaessa aiempaan SDRAM-muistiin.[12] DDR-SDRAM käyttää sekä nousevaa että laskevaa kellopulssin reunaa tiedonsiirtoon, josta viittaus nimessä olevaan kaksinkertaistumiseen.[12]
Tyyppinimityksellään DDR-SDRAM eroaa myös edeltäjistään. 100 MHz:n muistiväylässä toimivan muistin tyyppinimi on PC1600 ja 133 MHz:n väylässä PC2100. Nimitykset tulevat muistin hetkellisestä tiedonsiirtonopeudesta ilmoitettuna yksikössä MB/s, esimerkiksi PC1600 (8 tavua × 2 × 100 MHz = 1 600 MB/s) ja PC 2100 (8 tavua × 2 × 133 MHz = 2 100 MB/s). Edellisistä voidaan käyttää myös vanhentuneita nimityksiä PC200 ja PC266. Nopein standardoitu DDR toimii 400 MHz:n nopeudella ja sen mallimerkintä on PC3200.
Tietoa siirretään DDR2-muistissa sekä nousevalla että laskevalla kellopulssilla, kuten DDR-muistissakin.
DDR2 on suunniteltu suurta kellotaajuutta silmällä pitäen, ja muistin ydin toimii puolella kellotaajuudella ulkoiseen nähden, jolloin kellotaajuutta voidaan nostaa selvästi, koska sisäinen nopeus ei tule ongelmaksi. Lisäksi signalointia on parannettu ja jännitettä pienennetty DDR:stä.
Samalla kellotaajuudella DDR2 on kaistanleveydeltään yhtä nopeaa kuin DDR, ja hakuajoiltaan jopa hitaampaa, mutta samalla valmistustekniikalla pystytään tekemään miltei kaksinkertaisella kellotaajuudella toimivia DDR2-muisteja DDR-muisteihin nähden.
DDR2:ta seuraava kehitysaskel on DDR3-muisti. DDR3-muistit on suunniteltu kasvattamaan suorituskykyä ja alentamaan tehonkulutusta DDR2-muisteihin verrattuna. DDR3 käyttää 1,5 voltin jännitettä.[14] DDR3-moduuli on ulkomitoiltaan samankokoinen kuin DDR2, mutta ei ole yhteensopiva sen kanssa. Muistimoduulin reunassa oleva lovi on eri paikassa, mikä estää muistin asentamisen DDR2-kantaan.[15]
Kannettaville tietokoneille on DDR3:sta kehitetty DDR3L (DDR3-Low Voltage), joka käyttää 1,35 V jännitettä. Kannettavien tietokoneiden SoDIMM-moduuleja on sekä DDR3 että DDR3L-tyyppiä. Intelin 4. sukupolven suorittimet vaativat DDR3L-muistin käyttöä. DDR3L on alaspäin yhteensopiva ja toimii sekä 1,5 että 1,35 V:n jännitteellä.[16]
DDR3:n sisällä on tapahtunut muutoksia. Esihakupuskuri on kahdeksanbittinen.[14] Virtavuotoja on pyritty vähentämään kaksiporttisilla transistoreilla.[14] DDR3-muistipiirit tarjoavat 64-bittisen kaistanleveyden. DDR3-muistikampoja voidaan laittaa kolme rinnakkain ja saada näin 192 bittiä leveä muistiväylä, mikäli emolevy tukee sitä.[14] DDR3-muistipiirissä sisäinen hakuaika on kahdeksasosa dataväylän datansiirtonopeudesta.[14] Muistipiiri kykenee lukemaan jokaisella sisäisellä kellojaksolla kahdeksan bittiä dataa.[14] DDR3-teknologia on muuttunut sisäisesti DDR2-teknologiasta siten että siinä missä DDR2 turvautui T-Branch-arkkitehtuuriin,[14] turvautuu DDR3 Fly-by-arkkitehtuuriin, joka on yksinkertaisempi ratkaisu kuin ensimmäisenä mainittu.[14] Fly-byssä muistipiirit ketjutetaan sarjaan.[14] Ketjun päässä on terminointi, jonka tarkoituksena on estää signaalia heijastumasta takaisin.[14] Fly-bytä käytetään, jotta päästäisiin T-branchin rajoituksista suurilla kellotaajuuksilla.[14]
DDR3:a seuraava kehitysaskel on DDR4. Se käyttää 1,2 voltin jännitettä. Sen kellotaajuus on alkaen 2 133 MHz ja on jopa 3 200 MHz.[17][18]
JEDECin standardimäärittelyn mukaan DDR4 muistin siirtonopeus on aluksi 1.6 GT/s pinnikohtaisesti, mahdollistaen myöhemmin 3.2 GT/s siirtonopeuden pinnikohtaisesti.[19][18] DDR4:aa on nopeutettu JEDECin määrittelemästä standardista Intelin määrittelemillä XMP-profiileilla (Extreme Memory Profile), jotka tarjoavat nopeampia taajuuksia ja alempaa latenssia. Nämä otetaan käyttöön yleensä BIOS-ohjelmasta.[20]
JEDEC on julkaissut DDR5-standardin (JESD79-5) heinäkuussa 2020.[21] Uusina ominaisuuksina on muun muassa hienojakoinen muistin virkistys kun toiset osiot ovat käytössä.[21] Ensimmäiset DDR5-muistit olivat nopeudeltaan 4,8 Gb/s kun nopein JEDECin standardoima DDR4 oli nopeudeltaan 3,2 Gbit/s.[21] DDR5:ssa jokaiselle muistikammalle tulee kaksi erillistä 40-bittistä muistikanavaa (32-bittiä ja ECC-virheenkorjaus). DDR4 käyttää yhtä 72-bittistä (64-bittinen data + 8-bit ECC) muistikanavaa. Merkittävin muutos on että jokaisella muistikammalla on oma virranhallintapiirinsä Power Management IC (PMIC). Aiemmin muisti sai käyttöjännitteensä emolevyltä, nyt virranhallinta siirtyy DDR5-moduulille. Tämä tosin nostaa muistikamman monimutkaisuutta. Lisäksi DDR5 sisältää lisäominaisuuksia muistivirheiden havaitsemiseen (On-die ECC).[22]
Käyttöjännite laskee 1,2 voltista 1,1 volttiin verrattuna DDR4:ään.[21]
Päivitetyssä versiosta DDR5-määrittelystä (JESD79-5C) siirtonopeudet kasvavat. Mukaan tulee Per-Row Activation Counting (PRAC) -laskuri, jonka avulla virkistysmääriä voi seurata tavoitteena ehkäistä Rowhammer-hyökkäyksiä. Samalla Partial Array Self Refresh (PASR) on merkitty vanhentuneeksi.[23][24]
Muita DRAMiin perustuvia ei-yleistyneitä muistipiirityyppejä ovat SLDRAM, QDR SDRAM ja Rambus RDRAM.
DDR-SDRAMin kilpailijana oli alkuaikoina Intelin tukema Rambus-yhtiön RDRAM. DDR-SDRAM oli kuitenkin halvempaa valmistaa sekä lisäksi RDRAMin lisenssi oli kallis ja vain harvat valmistajat hankkivat sen lisenssin. Valmistajien vähyys lisäsi muistityyppien hintaeroa. Vaikutusvaltaisen Tom's Hardwaren testissä RDRAMin suorituskyky oli korkeintaan 3 % parempi kuin SDRAMilla, ja joissain tapauksissa huonompi.[25] Intel luopui RDRAMista kokonaan vuoteen 2003 mennessä.
Uudempi Rambus-yrityksen ehdotus muistiarkkitehtuuriksi on XDR DRAM.
Mikropiirille integroitu DRAM-tyyppi.
Mobile DDR (myös nimillä mDDR, Low Power DDR, tai LPDDR) on vähävirtainen versio DDR-muistista mobiililaitteisiin.
Variaatioita ovat mm. LPDDR, LPDDR2, LPDDR4 ja LPDDR5.
LPDDR eroaa merkittävästi DDR-muistista. LPDDR-muistilla on korkeampi hinta, mutta myös huomattavasti alhaisempi virrankulutus. Nämä ovat myös standardoitu erikseen (JESD79 DDR-muistille, JESD209 LPDDR-muistille).[26]
PSRAM tai PSDRAM on DRAM- ja SRAM- tyyppien yhdistelmä, jota on käytetty eräissä älypuhelimissa.