DRAM

**DRAM** () 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. Näistä tyypeistä on johdettu myös erikoistuneemmat mobiilikäyttöön ja grafikkasuorittimille tarkoitetut LPDDR ja SGRAM -tyypit.

## Dynaamisten muistipiirien historia
Varhaisia kehitysaskeleita oli Toshiban "TOSCAL" BC-1411 laskin, jossa oli kapasitiivinen dynaaminen RAM-muisti. Laskimen diskreeteillä kondensaattoreilla saavutettiin 180 bitin muistikapasiteetti, jota erikoispiiri päivittää taajaan.

Robert Dennard keksi MOS-tekniikkaan perustuvan DRAM-piirin vuonna 1966 ja sai sille patentin 3,387,286 vuonna 1968. Dennardin ajatus oli että binääristä informaatiota voitaisiin säilöä positiivisena tai negatiivisena varauksena kondensaattorissa, mutta ongelmana oli varauksen häviäminen millisekunnissa. Dennard kehitti ratkaisun, jossa kanavatransistori luki varauksen ja kirjoitti sen takaisin tuhansia kertoja sekunnissa. Aikaisemmat ratkaisut olivat monimutkaisia ja vaativat paljon virtaa, jonka Dennard onnistui yksinkertaistamaan yhteen transistoriin.

Ensimmäinen kaupallisesti saatava DRAM-muistipiiri oli Intel 1103 (1969), jonka koko oli . 1&nbsp;Mbit muistikoko saavutettiin 1984 ja 1&nbsp;Gbit 1990-luvun lopulla.

## DRAM-protokollan yleispiirteet ja piirien rakenne
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.

Muistipiirien kapasiteetti ilmoitetaan tyypillisesti kilobitteinä sekä piirin datan leveytenä: esimerkiksi 2&nbsp;Mbit&nbsp;×&nbsp;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ä.

### CAS-latenssi
DRAM-muistin lukeminen ja kirjoittaminen alkavat aktivoimalla haluttu rivi. Ensin valitaan aktivoitava rivi, ja kun muistipiiri on saanut rivin aktivoitua, sille ilmoitetaan tältä riviltä sarake, josta luetaan tai johon kirjoitetaan. Halutun rivin aktivointi kestää tietyn aikajakson. Rivin ja sarakkeen valinnasta käytetään termejä Row Address Strobe (RAS) ja Column Address Strobe (CAS). Alkuperäisessä DRAM-muistissa jokainen rivi ja sarake oli valittava erikseen, mutta FPM- ja EDO-tyypit paransivat nopeutta lisäämällä purskemoodin. Purskemoodissa tietty määrä osioita pystyttiin käsittelemään peräjälkeen ilman uudelleenvalintaa.

SDRAM käyttää useita parametreja muistipiirien sisäiseen ajoitukseen, jotka usein ilmoitetaan muodossa CLA-B-C-D. Ajoitusparametrit kertovat tiettyihin toimintoihin vaaditun ajan, jotka ovat: CL-tRCD-tRP-tRAS(-CMD). Muistipiirit ovat järjestäytyneet sisäisesti "riveihin" ja "sarakkeisiin", ja piirin käsittelemä tietolohko ilmaistaan rivi- ja sarakenumeroilla. Operaation aluksi muistiohjain aktivoi halutun rivin, joka vie joitakin kellojaksoja. Viiveen jälkeen valitaan sarake ja annetaan luku- tai kirjoituskomento. Komento voidaan toistaa nopeasti eri sarakkeille, mutta luettu tieto on saatavilla vasta muutaman kellojakson jälkeen. Kun komento kohdistuu eri riville on valittu rivi deaktivoitava ensin, joka vie muutamia kellojaksoja. Tästä saadaan parametrit *CAS Latency (CL)*, *RAS to CAS Delay (tRCD)*, *RAS Precharge (tRP)* ja *Active to Precharge Delay (tRAS)*. SDRAMille arvot annetaan kellojaksojen määränä kun taas asynkroniselle DRAM-muistille arvot ovat nanosekunteina. Kellojaksot ovat suhteessa muistipiirin sisäisen toiminnan kelloon.

### Käyttöjännite
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 muistityypit
DRAM-muistityyppejä on kehitetty useita eri versioita, kuten FPM, EDO, SDRAM ja DDR SDRAM useine versioineen. 

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.

PlayStation 4 käyttää vain GDDR5-muistia, joka on jaettu sekä CPU- että GPU- toimintojen välillä.

### FPM
FPM () on 1990-luvun alussa esitelty muistityyppi.

Se sallii lukemisen samalta riviltä jokaisesta sarakkeesta kerralla siten, että vain sarakeosoitetta muutetaan. Aiemmin muistia luettiin sekä rivi että sarake asettamalla.

FPM-muistin hakuaika oli tyypillisesti 100–60&nbsp;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
EDO () tuli käyttöön 1990-luvun puolivälissä.

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&nbsp;ns nopeudella.

### SDRAM

SDRAM () esiteltiin 1996. 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.

SDRAMiin perustuvia muistityyppejä ovat muun muassa SDR SDRAM (*single data-rate*) ja DDR SDRAM (*double data-rate*).

### SGRAM
SGRAM () on näytönohjaimien grafiikkamuistiin tarkoitettu erikoistunut versio SDRAMista. Esimerkkejä toiminnoista ovat "Block Write" ja "Mask Write".

SGRAM muistityyppiä käytetään GDDR SDRAM -standardeissa.

## Muita DRAM-muistityyppejä
Muita DRAMiin perustuvia ei-yleistyneitä muistipiirityyppejä ovat SLDRAM ja Rambus RDRAM.

### Rambus
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&nbsp;% parempi kuin SDRAMilla, ja joissain tapauksissa huonompi. Intel luopui RDRAMista kokonaan vuoteen 2003 mennessä.

Uudempi Rambus-yrityksen ehdotus muistiarkkitehtuuriksi on XDR DRAM.

### Embedded DRAM (eDRAM)
Mikropiirille integroitu DRAM-tyyppi.

### Grafiikkamuistit
* Video DRAM (VRAM)
* Window DRAM (WRAM)
* Multibank DRAM (MDRAM)
* Synchronous graphics RAM (SGRAM)
* Graphics double data rate SDRAM (GDDR SDRAM)
** GDDR on grafiikkakäyttöön, kuten näytönohjaimiin erikoistunut versio DDR-muistista. GDDR-standardeja ovat esimerkiksi GDDR3, GDDR5, GDDR6 ja GDDR7.

## Mobile DDR
*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 SDRAM -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).

## Pseudostatic RAM (PSRAM)
PSRAM tai PSDRAM on DRAM- ja SRAM- tyyppien yhdistelmä, jota on käytetty eräissä älypuhelimissa.

## Katso myös
* Muistivirhe (pariteettitarkistus muistipiireissä ja ECC-muistit)
* Serial Presence Detect, ajoituksien automaattinen tunnistaminen

## Lähteet

## Kirjallisuutta
* 

## Aiheesta muualla