I dag er langt størstedelen af den hukommelse, der anvendes af stationære computere, bærbare computere og mobile enheder, ubuffered ikke-ECC (Error Checking and Correction) DRAM. Medmindre man kører med en Intel- eller AMD-CPU, der kan understøtte ECC-hukommelse, er ubuffered ECC-DRAM faktisk det eneste valg for de fleste brugere. Intel Xeons understøtter f.eks. ECC-hukommelse, mens selv de nye Core i7’ere ikke gør det. AMD har meget bredere ECC-understøttelse på CPU-niveau, men mange AMD-moderkort understøtter ikke ECC-hukommelsesfunktioner, så det er ikke universelt.
ECC-hukommelse Hvad den gør
Fejlkontrol- og korrektionshukommelse (ECC) anses for det meste for at være afgørende i virksomhedsmiljøer i disse dage. Enkeltbitfejlkontrol og -korrektion inden for en 8-bit byte gør det muligt både at opdage og korrigere enkeltbitfejl, når de opstår. Interessant nok er den måde, hvorpå denne single bit ECC fungerer, ikke helt ulig RAID 4 og RAID 5, hvor der anvendes en XOR-algoritme til at generere paritetsbits. I stedet for at miste brugbar hukommelseskapacitet har hukommelsesproducenterne en tendens til at tilføje en ekstra chip til ECC-hukommelsen for hver otte lagringschips. Når der opdages en enkelt bitfejl, bruges paritetsoplysningerne til at rekonstruere de fejlbehæftede data. Igen ligner dette konceptuelt set den måde, hvorpå RAID 4 og RAID 5 kan skrubbe og rette datafejl i lagringsmiljøer. Større fejl end multibitfejl kan opdages, men ikke korrigeres af paritetsordningen af typen single bit ECC.
For stationære computere er dette mindre vigtigt, da mange tal angiver singlebitfejl i størrelsesordenen 1 pr. 1 GB eller 1 pr. 2 GB hukommelse hver måned. For en desktop-bruger kan dette få et program til at gå ned, eller i værste fald kræve en genstart. I servere er ECC afgørende for at opretholde både dataintegritet og oppetid. Med den nuværende mindre omkostningsforskel mellem ECC og ikke-ECC ubuffered DIMM’er er der ikke megen grund til at få ikke-ECC-hukommelse til en server.
Ubuffered ECC versus registreret ECC-hukommelse
Som supplement til ECC-konceptet er der to koncepter i spil, nemlig ubuffered og registrerede ECC-hukommelsesmoduler. Den grundlæggende forskel er, at hukommelseskommandoer i konfigurationer med ubuffered hukommelse går direkte fra controlleren til hukommelsesmodulet, mens kommandoerne i konfigurationer med registreret hukommelse først sendes til hukommelsesbankernes registre, før de sendes til modulerne. Dette koncept kan lyde vanskeligt, men her er den meget enkle/begrebsmæssige opfattelse af, hvad der foregår.
I ovenstående eksempel har hukommelsescontrolleren direkte adgang til hukommelsesbankerne. Ovenstående forudsætter, at hukommelsescontrolleren befinder sig inden for CPU-pakken, som den gør i moderne CPU-arkitekturer. Hvis man ser på ældre systemer, befandt hukommelsescontrolleren sig i CPU-nordbroen. Sammenlign dette med det registrerede hukommelseseksempel nedenfor.
Her kommunikerer CPU’en med registerne for hukommelsesbankerne på hvert modul. Derfra kommunikerer disse registre med DRAM’en. Konsekvenserne af dette er todelt. For det første, på den negative side, tager instruktioner ca. en CPU-cyklus længere tid på grund af mellemleddet i bankregisteret. På den positive side reducerer denne buffering belastningen på CPU’ens hukommelsescontroller, fordi den peger på det dedikerede mellemliggende register i stedet for at få direkte adgang til DRAM’en. Det er lettere for hukommelsescontrolleren at håndtere færre mål.
Denne funktion er meget vigtig i serverscenarier, fordi f.eks. en platform i Intel 3400-serien, som Supermicro X8SI6-F eller Intel S3420GPLC, understøtter 16 GB ubuffered ECC og 32 GB registreret ECC-hukommelse. På samme måde er deltaet i systemer med to processorer, som f.eks. den E5600-serie-baserede Supermicro X8DTH-6F, der for nylig blev anmeldt på ServeTheHome, meget større med op til 48 GB uregistreret ECC-hukommelse eller 192 GB registreret ECC-hukommelse. For virtualiseringsmiljøer, hvor hukommelse og hukommelsesbåndbredde er nøglen til at opnå høje konsoliderings- og tæthedsmetrikker, er registreret ECC-hukommelse generelt vejen at gå. Hvis man køber en server med uregistrerede ECC DIMM’er og derefter har brug for ekstra kapacitet, vil opgraderingsoperationen kræve en pull and replace alle UDIMM-moduler, hvilket gør det til et dyrt tilbud.
Slutning
I denne artikel kan man forhåbentlig få et konceptuelt overblik over forskellen mellem ubuffered ECC-hukommelse og registreret ECC-hukommelse for at hjælpe med at informere valgbeslutninger. Dette var ikke en alt for teknisk artikel, fordi hukommelsesmoduler har en tendens til at være elementer, som folk bestiller med eller tilføjer til deres systemer og gør lidt arbejde på, indtil de har brug for mere hukommelse.