Muistin kaistanleveys - Memory bandwidth
Muistin kaistanleveyttä on nopeus, jolla dataa voidaan lukea tai talletetaan puolijohdemuisti , jonka prosessori . Muistin kaistanleveys ilmaistaan tavallisesti yksikköinä tavuina sekunnissa , vaikka tämä voi vaihdella järjestelmissä, joissa on luonnollinen datakoko, joka ei ole moninkertainen yleisesti käytettyihin 8-bittisiin tavuihin.
Tietylle muistille tai järjestelmälle mainostettava muistikaistanleveys on yleensä suurin teoreettinen kaistanleveys. Käytännössä havaittu muistikaistanleveys on pienempi (ja taataan, ettei se ylitä) mainostettua kaistanleveyttä. On olemassa useita tietokoneen vertailuarvoja , joilla mitataan kestävää muistin kaistanleveyttä käyttämällä erilaisia pääsymalleja. Niiden on tarkoitus antaa käsitys muistin kaistanleveydestä, jonka järjestelmän tulisi ylläpitää todellisten sovellusten eri luokissa.
Mittaustavat
On kolme erilaista tapaa määritellä siirrettyjen tietojen määrä "tavu / sekunti" -laskurissa:
- Bcopy sopimus : laskee datan määrää kopioidaan paikasta muistissa toiseen paikkaan aikayksikköä kohti. Esimerkiksi miljoonan tavun kopioiminen yhdestä muistin sijainnista toiseen muistin sijaintiin yhdessä sekunnissa lasketaan miljoonaksi tavuksi sekunnissa. Bcopy-käytäntö on itsestään johdonmukainen, mutta sitä ei ole helppo laajentaa kattamaan tapauksia, joissa on monimutkaisemmat pääsymallit, esimerkiksi kolme lukua ja yksi kirjoitus.
- Stream yleissopimus : summaa tietomäärää, sovelluskoodia nimenomaan lukee plus tietomäärää, sovelluskoodia nimenomaan kirjoittaa. Käyttämällä edellistä miljoonan tavun kopiomuotoa STREAM-kaistanleveys lasketaan miljoonaksi tavuksi luettuna plus miljoonaksi tavuksi, jotka on kirjoitettu yhdessä sekunnissa, yhteensä 2 miljoonaa tavua sekunnissa. STREAM-käytäntö on suorimmin sidottu käyttäjäkoodiin, mutta se ei välttämättä laske kaikkea dataliikennettä, jonka laitteiston todella tarvitaan suorittamaan.
- Laitteisto yleissopimus : laskee, kuinka suuri määrä dataa lukea tai kirjoittaa laitteiston, onko data liikkeen on nimenomaan edellytetään käyttäjän koodia vai ei. Käyttäen samaa miljoonan tavun kopioesimerkkiä, laitteistojen kaistanleveys tietokonejärjestelmissä, joissa on kirjoitusallokointivälimuisti, sisältäisi miljoona tavua lisää liikennettä, koska laitteisto lukee kohdematriisin muistista välimuistiin ennen varastojen suorittamista. Tämä antaa laitteiston tosiasiallisesti siirtämälle 3 miljoonalle tavulle sekunnissa. Laitteistokokoonpano on suorimmin sidottu laitteistoon, mutta ei välttämättä edusta käyttäjän koodin käyttöönottoon tarvittavaa vähimmäismäärää dataliikennettä.
- Esimerkiksi joillakin tietojärjestelmillä on kyky välttää kirjoitusallokaalin käyttö erityisohjeiden avulla, mikä johtaa harhaanjohtaviin kaistanleveyden vertailuihin suoritetun dataliikenteen eri määrien perusteella.
Kaistanleveyden laskenta ja nimikkeistö
Nimikkeistö eroaa muistitekniikoista, mutta hyödykkeiden DDR SDRAM- , DDR2 SDRAM- ja DDR3 SDRAM -muistien kokonaiskaistanleveys on seuraavien tulo:
- DRAM-kellotaajuus
- Tiedonsiirtojen määrä kelloa kohti : Kaksi, jos kyseessä on "kaksinkertainen datanopeus" (DDR, DDR2, DDR3, DDR4) muisti.
- Muistiväylän (liitännän) leveys : Jokainen DDR-, DDR2- tai DDR3-muistiliitäntä on 64 bittiä leveä. Näitä 64 bittiä kutsutaan joskus "viivaksi".
- Liitäntöjen lukumäärä : Nykyaikaiset henkilökohtaiset tietokoneet käyttävät tyypillisesti kahta muistiliitäntää ( kaksikanavainen tila) tehokkaan 128-bittisen väyläleveyden saavuttamiseksi.
Esimerkiksi tietokoneella, jossa on kaksikanavainen muisti ja yksi DDR2-800-moduuli kanavaa kohti 400 MHz: n taajuudella, teoreettinen enimmäismuistin kaistanleveys olisi:
- 400 000 000 kelloa sekunnissa × 2 riviä / kello × 64 bittiä / linja × 2 rajapintaa =
- 102 400 000 000 (102,4 miljardia) bittiä sekunnissa (tavuina, 12 800 MB / s tai 12,8 GB / s)
Tätä teoreettista maksimimuistikaistanleveyttä kutsutaan "pursketaajuudeksi", joka ei välttämättä ole kestävä.
DDR-, DDR2- ja DDR3-moduulien nimeämiskäytäntö määrittää joko enimmäisnopeuden (esim. DDR2-800) tai enimmäiskaistanleveyden (esim. PC2-6400). Nopeusluokitus (800) ei ole suurin kellotaajuus, mutta kaksinkertainen (kaksinkertaisen tiedonsiirtonopeuden takia). Määritetty kaistanleveys (6400) on suurin megatavu, joka siirretään sekunnissa 64-bittisen leveyden avulla. Kaksikanavaisessa tilassa tämä on käytännössä 128-bittinen leveys. Täten esimerkin muistikokoonpanoa voidaan yksinkertaistaa seuraavasti: kaksi DDR2-800-moduulia, jotka toimivat kaksikanavaisessa tilassa.
Kaksi muistiliitäntää moduulia kohden on yleinen kokoonpano PC-järjestelmämuistille, mutta yksikanavaiset kokoonpanot ovat yleisiä vanhemmissa, matalaluokkaisissa tai vähän virtaa kuluttavissa laitteissa. Jotkut henkilökohtaiset tietokoneet ja moderneimmat näytönohjaimet käyttävät enemmän kuin kahta muistiliitäntää (esim. Neljä Intelin LGA 2011 -alustalle ja NVIDIA GeForce GTX 980). Suorituskykyiset näytönohjaimet, jotka käyttävät useita liitäntöjä rinnakkain, voivat saavuttaa erittäin suuren muistiväyläleveyden (esim. 384 bittiä NVIDIA GeForce GTX TITAN -laitteessa ja 512 bittiä AMD Radeon R9 290X -laitteessa käyttämällä vastaavasti kuutta ja kahdeksan 64-bittistä liitäntää).
ECC-bitit
Järjestelmissä, joissa on virheenkorjausmuisti (ECC), rajapintojen lisäleveyttä (tyypillisesti 72 eikä 64 bittiä) ei lasketa kaistanleveysmäärityksiin, koska ylimääräisiä bittejä ei ole saatavana käyttäjän tietojen tallentamiseen. ECC-bittejä pidetään paremmin osana muistilaitteistoa kuin kyseiseen laitteistoon tallennettuina tietoina.
Katso myös
- CAS-viive
- Dynaaminen satunnaismuisti
- Luettelo laitteen kaistanleveyksistä
- Muistiviive
- Muistin ajoitukset
- RAM-muisti
Viitteet
Kenraali
- BSS Random Access Benchmark Performance Evaluation and Optimization of Random Memory Access on Multicores with High Productivity ACM / IEEE HiPC 2010 -sovelluksessa