Tänään suurin osa pöytäkoneissa, kannettavissa tietokoneissa ja mobiililaitteissa käytetystä muistista on puskuroimatonta, ei-ECC-muistia (virheiden tarkistus ja korjaus). Itse asiassa puskuroimaton ECC-DRAM-muisti on useimmille käyttäjille ainoa vaihtoehto, ellei käytössä ole Intelin tai AMD:n prosessoria, joka tukee ECC-muistia. Esimerkiksi Intel Xeonit tukevat ECC-muistia, mutta jopa uudet Core i7:t eivät. AMD:llä on paljon laajempi ECC-tuki suorittimen tasolla, mutta monet AMD:n emolevyt eivät tue ECC-muistiominaisuuksia, joten se ei ole yleispätevää.
ECC-muisti Mitä se tekee
Error Checking and Correction (ECC) -muistia (ECC-muistia) pidetään nykyään enimmäkseen välttämättömänä yritysympäristöissä. Yhden bitin virhetarkistus ja -korjaus 8-bittisen tavun sisällä mahdollistaa yhden bitin virheiden havaitsemisen ja korjaamisen niiden ilmetessä. Mielenkiintoista on, että tämän yhden bitin ECC:n toimintatapa ei poikkea kovinkaan paljon RAID 4:stä ja RAID 5:stä, joissa käytetään XOR-algoritmia pariteettibittien tuottamiseen. Käyttökelpoisen muistikapasiteetin menettämisen sijaan muistivalmistajat pyrkivät lisäämään ECC-muistiin yhden lisäsirun jokaista kahdeksaa muistisirua kohti. Kun havaitaan yksittäisen bitin virhe, pariteettitietoja käytetään virheen sisältävän datan uudelleenrakentamiseen. Tämäkin on käsitteellisesti samanlaista kuin se, miten RAID 4 ja RAID 5 voivat pyyhkiä ja korjata tietovirheitä tallennusmatriiseissa. Monibittisiä virheitä suuremmat virheet voidaan havaita, mutta niitä ei korjata yhden bitin ECC-tyyppisellä pariteettijärjestelmällä.
Pöytäkoneissa tämä ei ole niin tärkeää, sillä monien lukujen mukaan yhden bitin virheitä on noin 1 per 1 Gt tai 1 per 2 Gt muistia kuukaudessa. Työpöytäkäyttäjälle tämä voi aiheuttaa ohjelman kaatumisen tai pahimmillaan vaatia uudelleenkäynnistyksen. Palvelimissa ECC on olennaisen tärkeää sekä tietojen eheyden että käytettävyyden ylläpitämiseksi. ECC:n ja ei-ECC:n puskuroimattomien DIMM-muistien nykyisten pienten kustannuserojen vuoksi ei ole juurikaan syytä hankkia palvelimiin ei-ECC-muistia.
Puskuroimaton ECC vs. rekisteröity ECC-muisti
Lisäksi ECC-käsitteeseen liittyy kaksi käsitettä, puskuroimattomat ja rekisteröidyt ECC-muistimoduulit. Perusero on se, että puskuroimattomissa muistikokoonpanoissa muistikomennot menevät suoraan ohjaimelta muistimoduuliin, kun taas rekisteröidyissä muistikokoonpanoissa komennot lähetetään ensin muistipankkien rekistereihin ennen kuin ne lähetetään moduuleihin. Tämä käsite saattaa kuulostaa vaikealta, mutta tässä on hyvin yksinkertainen/käsitteellinen näkemys siitä, mitä tapahtuu.
Yllä olevassa esimerkissä muistinohjain käyttää muistipankkeja suoraan. Edellä oletetaan, että muistiohjain sijaitsee prosessoripaketissa, kuten nykyaikaisissa prosessoriarkkitehtuureissa. Kun tarkastellaan vanhempia järjestelmiä, muistiohjain sijaitsi suorittimen northbridgen sisällä. Vertaa tätä alla olevaan esimerkkiin rekisteröidystä muistista.
Tässä keskusyksikkö kommunikoi kunkin moduulin muistipankkien rekistereiden kanssa. Sieltä nämä rekisterit ovat yhteydessä DRAM-muistiin. Tällä on kaksi merkitystä. Ensinnäkin negatiivisena puolena on se, että käskyt kestävät noin yhden CPU-syklin pidempään pankkirekisterin välittämisen vuoksi. Myönteistä on, että tämä puskurointi vähentää suorittimen muistinohjaimen rasitusta, koska se osoittaa omaan välirekisteriin eikä käytä suoraan DRAM-muistia. Muistiohjaimelle on helpompaa käsitellä vähemmän kohteita.
Tämä ominaisuus on erittäin tärkeä palvelinskenaarioissa, koska esimerkiksi Intelin 3400-sarjan järjestelmäalusta, kuten Supermicro X8SI6-F tai Intel S3420GPLC, tukee 16 Gt:n suuruista puskuroimatonta ECC-muistia ja 32 Gt:n suuruista rekisteröityä ECC-muistia. Samoin kahden prosessorin järjestelmissä, kuten E5600-sarjaan perustuvassa Supermicro X8DTH-6F:ssä, jonka ServeTheHome-sivusto on hiljattain arvioinut, ero on paljon suurempi, kun käytössä on jopa 48 Gt rekisteröimätöntä ECC-muistia tai 192 Gt rekisteröityä ECC-muistia. Virtualisointiympäristöissä, joissa muisti ja muistin kaistanleveys ovat avainasemassa korkeiden konsolidointi- ja tiheysmittareiden saavuttamisessa, rekisteröity ECC-muisti on yleensä paras vaihtoehto. Jos ostetaan palvelin, jossa on rekisteröimättömiä ECC-DIMM-muisteja, ja sitten tarvitaan lisäkapasiteettia, päivitysoperaatio edellyttää kaikkien UDIMM-moduulien vetämistä ja vaihtamista, mikä tekee siitä kalliin ehdotuksen.
Johtopäätös
Tässä artikkelissa toivottavasti saadaan käsitteellinen näkemys puskuroimattoman ECC-muistin ja rekisteröidyn ECC-muistin välisestä erosta, mikä auttaa valintapäätöksissä. Tämä ei ollut liian tekninen artikkeli, koska muistimoduulit ovat yleensä kohteita, joita ihmiset tilaavat järjestelmiinsä tai lisäävät niihin ja käsittelevät niitä vain vähän, kunnes tarvitsevat lisää muistia.