Какво е ECC памет?

click fraud protection

Някои RAM или памет с произволен достъп се рекламират като ECC памет. ECC е съкращение от Error Correcting Code и е процес на идентифициране и коригиране на грешки в паметта. Грешките в RAM паметта могат да причинят повреда или промяна на данните, което може да доведе до сривове на устройството и дори до уязвимости в сигурността. ECC RAM обикновено не е съвместим с компютърен хардуер от потребителски клас.

Какво представляват грешките в паметта?

Грешките в паметта са проблем, при който стойността, съхранена в паметта, се променя. Данните в RAM се съхраняват в двоичен файл със стойности от 1 или 0. Ако стойността на 1 се превключи на 0 или обратно, в процес, наречен „превъртане на битове“, данните, които се съхраняват в RAM паметта, се променят.

Например, промененият бит може да се използва за съхраняване на стойност в електронна таблица. В този случай стойността в електронната таблица може да бъде променена на напълно различно число, което ще повлияе на резултата за всякакви изчисления, например промяна на икономическите прогнози на a бизнес. В други случаи промененият бит може да деактивира защитна функция или да създаде печатна грешка, която променя начина, по който се изпълнява програмата. Тези два примера са изключително трудни за откриване и разрешаване без използване на ECC памет. В краен сценарий, обръщането на един бит може да причини катастрофална грешка, която да причини срив на системата.

Преобръщането на битове има много потенциални причини, най-честата причина е резултат от фоново излъчване, основно причинено от неутрони, създадени от събития на космически лъчи. Космическият лъч е частица с висока енергия, обикновено протон, която се движи с почти скоростта на светлината. Те се излъчват от звездни тела, включително Слънцето и други високоенергийни астрономически обекти. Когато космически лъч удари атом, се създава дъжд от неутрони и други субатомни частици, след това тези неутрони продължават да имат вторични взаимодействия.

Смята се, че тези вторични неутронни взаимодействия са основният източник на грешки при преобръщане на битове. Космическите лъчи са по-чести на по-високи височини с 3,5 пъти увеличение на 1,5 км над морското равнище и 300 пъти увеличение на крейсерската височина на самолетите. Този повишен риск на височина налага допълнителни мерки за надеждност.

Колко чести са грешките в паметта?

Повечето хора не виждат компютрите си да се сриват всеки ден, така че би било лесно да се мисли, че това е предимно теоретичен риск. Изследвания от хипермащабни центрове за данни са използвани за анализиране на честотата на инцидентите с преобръщане на битове. Изследванията, извършени от Google в неговите центрове за данни, показват честота на грешки от приблизително 1 еднобитова грешка на гигабайт RAM на всеки 1,8 часа.

Мисията на НАСА Cassini-Huygens, която стартира през 1997 г., за да пътува до Сатурн, беше конфигурирана с два идентични летателни компютъра, всеки с 2,5 Gb RAM. През първите две години и половина от пътуването си космическият кораб наблюдава последователни 280 еднобитови грешки на ден. През един ден, когато Касини-Хюйгенс беше на пътя на слънчево изригване, четирикратно увеличение на бит бяха наблюдавани грешки, предоставящи допълнителни доказателства, че Слънцето е причината за повечето битове проблеми.

Имаше опасения, че продължаващото увеличаване на плътността на RAM модулите ще доведе до по-късните версии на RAM паметта да бъдат все по-уязвими към преобръщане на битове. По-новите проучвания показват, че всъщност е точно обратното, тъй като грешките са намалели, тъй като геометрията на процеса е намаляла.

Как ECC паметта предпазва от грешки?

ECC паметта използва кодове за коригиране на грешки, като кодове на Хаминг, за коригиране на еднобитови грешки в RAM. Двойни битови грешки могат да бъдат открити, но не и коригирани. Кодовете за коригиране на грешки на Хеминг работят чрез използване на масив от битове за четност. Заедно тези битове за четност могат да се използват за откриване на промяна на битовете на данните. Ако битът бъде идентифициран като обърнат, той автоматично се променя обратно.

Съвет: Еднобитова грешка е инцидент с обръщане на битове, когато е обърнат само един бит. При двойни 0-битови грешки се обръщат два бита. Двата бита не трябва да се обръщат в един и същи инцидент, второто преобръщане на бит трябва да се случи само преди да бъде коригиран първият обърнат бит.

Един повече бит за четност, отколкото е необходимо, е включен в кодовете за коригиране на грешки на Хаминг. Този допълнителен бит за четност дава на кода възможността да открие появата на двойни битови грешки, но тези грешки не могат да бъдат коригирани.

Процесът на извършване на откриване и коригиране на грешки се извършва на контролера на паметта на борда на RAM паметта.

Наличност и поддръжка на потребителите

Повечето компютърен хардуер от потребителски клас не поддържа ECC памет. Това е отчасти като метод за изкуствено разграничаване на сървърния хардуер от потребителския хардуер. ECC RAM обаче струва повече и работи малко по-бавно. Освен това допълнителната стабилност, която би осигурила на домашните потребители, е минимална, тъй като грешките при преобръщане на битове не са основната причина за сривове на системата.

Нито един от процесорите на Intel за потребителски и ентусиастски клас не поддържа ECC памет, а само неговите сървърни процесори, като процесорите от гамата Xeon. Потребителските процесори на AMD не поддържат ECC, но техните работни станции и процесори от сървърен клас, съответно Threadripper и EPYC, поддържат ECC памет.