Чим відрізняється ecc пам'ять від звичайної. Поясніть, що таке “Підтримка ECC” на оперативній пам'яті

Запитання

Які обмеження обсягу пам'яті накладають сучасні операційні системи сімейства Windows?

Застарілі, але де-не-де ще зустрічаються, операційні системи Windows 9x/ME вміють працювати лише з 512 Мб пам'яті. І хоча конфігурації з великим обсягом для них цілком можливі, проблем при цьому виникає набагато більше, ніж користі. Сучасні 32-розрядні версії Windows 2000/2003/XP та Vista теоретично підтримують до 4 Гб пам'яті, але реально доступно для програм не більше 2 Гб. За невеликим винятком - ОС початкового рівня Windows XP Starter Edition та Windows Vista Starter здатні працювати не більше ніж з 256 Мб та 1 Гб пам'яті відповідно. Максимальний підтримуваний об'єм 64-розрядної Windows Vista залежить від її версії і становить:

  • Home Basic – 8 Гб;
  • Home Premium – 16 Гб;
  • Ultimate – понад 128 Гб;
  • Business - понад 128 Гб;
  • Enterprise - Понад 128 Гб.

Що таке DDR SDRAM пам'ять?

Пам'ять типу DDR(Double Data Rate - подвоєна швидкість передачі) забезпечує передачу даних по шині "пам'ять-чіпсет" двічі за такт, по обох напрямках тактуючого сигналу. Таким чином, при роботі системної шини та пам'яті на одній і тій же тактовій частоті, пропускна здатністьшини пам'яті виявляється вдвічі більшою, ніж у звичайної SDRAM.

У позначенні модулів пам'яті DDR зазвичай використовуються два параметри: або робоча частота (рівна подвоєному значенню тактової частоти) - наприклад, тактова частота пам'яті DR-400 дорівнює 200 МГц; або пікову пропускну здатність (Мб/с). У тій же DR-400 пропускна здатність приблизно дорівнює 3200 Мб/с, тому вона може позначатися як РС3200. В даний час пам'ять DDR втратила свою актуальність і в нових системах практично повністю витіснена сучаснішою DDR2. Тим не менш, для підтримки "на плаву" великої кількості старих комп'ютерів, в які встановлена ​​пам'ять DDR, випуск її все ще продовжується. Найбільш поширені 184-контактні модулі DDR стандартів PC3200 і щонайменше PC2700. DDR SDRAM може мати Registered та ECC варіанти.

Що таке DDR2 пам'ять?

Пам'ять DDR2 є спадкоємицею DDR і в даний час є домінуючим типом пам'яті для настільних комп'ютерів, серверів та робочих станцій. DDR2 розрахована на роботу на більш високих частотах, ніж DDR, характеризується меншим енергоспоживанням, і навіть набором нових функцій (передвиборка 4 біта за такт, вбудована термінація). Крім того, на відміну від чіпів DDR, які випускалися як у корпусах типу TSOP, так і FBGA, чіпи DDR2 випускаються лише у корпусах FBGA (що забезпечує їм більшу стабільність роботи на високих частотах). Модулі пам'ять DDR та DDR2 не сумісні один з одним не тільки електрично, але й механічно: для DDR2 використовуються 240-контактні планки, тоді як для DDR – 184-контактні. Сьогодні найбільш поширена пам'ять, що працює на частоті 333 МГц і 400 МГц, і позначається як DDR2-667 (РС2-5400/5300) та DDR2-800 (РС2-6400) відповідно.

Що таке DDR3 пам'ять?

Відповідь: Пам'ять стандарту DDR ​​третього покоління – DDR3 SDRAM незабаром має замінити нинішню DDR2. Продуктивність нової пам'яті подвоїлася в порівнянні з попередньою: тепер кожна операція читання або запису означає доступ до восьми груп даних DDR3 DRAM, які, у свою чергу, за допомогою двох різних опорних генераторів мультиплексуються за контактами I/O з частотою, що в чотири рази перевищує тактову частоту. Теоретично ефективні частоти DDR3 розташовуватимуться в діапазоні 800 МГц - 1600 МГц (при тактових частотах 400 МГц - 800 МГц), таким чином, маркування DDR3 в залежності від швидкості буде: DDR3-800, DDR3-1066, DDR3-3 . Серед основних переваг нового стандарту, перш за все, варто відзначити значно менше енергоспоживання (напруга живлення DDR3 - 1,5 В, DDR2 - 1,8 В, DDR - 2,5 В).

Що таке SLI-Ready-пам'ять?

Відповідь: SLI-Ready-пам'ять, інакше – пам'ять з EPP (Enhanced Performance Profiles – профілі для збільшення продуктивності), створена силами маркетингових відділів компаній NVIDIA та Corsair. Профілі EPP, в яких, крім стандартних таймінгів пам'яті, "прописуються" ще й значення оптимальної напруги живлення модулів, а також деякі Додаткові параметризаписуються в мікросхему SPD модуля.

Завдяки профілям EPP зменшується трудомісткість самостійної оптимізації роботи підсистеми пам'яті, хоча істотного впливу на продуктивність системи додаткові таймінги не надають. Отже, будь-якого значного виграшу від використання SLI-Ready-пам'яті, порівняно із звичайною пам'яттю, оптимізованою вручну, немає.

Що таке пам'ять ECC?

ECC (Error Correct Code - виявлення та виправлення помилок) служить для виправлення випадкових помилок пам'яті, що викликаються різними зовнішніми факторами, і є удосконаленим варіантом системи "контролю парності". Фізично ECC реалізується як додаткової 8-разрядной мікросхеми пам'яті, встановленої поруч із основними. Таким чином, модулі з ECC є 72-розрядним (на відміну від стандартних 64-розрядних модулів). Деякі типи пам'яті (Registered, Full Buffered) випускаються лише у ECC варіанті.

Що таке Registered-пам'ять?

Registered (реєстрові) модулі пам'яті застосовуються в основному серверах, що працюють з великими обсягами оперативної пам'яті. Усі вони мають ЄСС, тобто. є 72-бітними і крім того містять додаткові мікросхеми регістрів для часткової (або повної - такі модулі називаються Full Buffered, або FB-DIMM) буферизації даних, за рахунок чого зменшується навантаження на контролер пам'яті. Буферизовані DIMM, як правило, несумісні з буферизованими.

Чи можна замість звичайної пам'ятівикористовувати Registered і навпаки?

Незважаючи на фізичну сумісність роз'ємів, звичайна не буферизована пам'ять і Registered-пам'ять не сумісні один з одним і, відповідно, використання Registered-пам'яті замість звичайної і навпаки неможливо.

Що таке SPD?

На будь-якому модулі пам'яті DIMM є невеликий чіп SPD (Serial Presence Detect), в якому виробником записується інформація про робочі частоти і відповідні затримки чіпів пам'яті, необхідні для забезпечення нормальної роботимодуля. Інформація з SPD зчитується BIOS на етапі самотестування комп'ютера ще до завантаження операційної системита дозволяє автоматично оптимізувати параметри доступу до пам'яті.

Чи можуть спільно працювати модулі пам'яті різного частотного номіналу?

Принципових обмежень працювати модулів пам'яті різного частотного номіналу немає. У цьому випадку (при автоматичного налаштуванняпам'яті за даними SPD) швидкість роботи всієї підсистеми пам'яті буде визначатися швидкістю найбільш повільного модуля.

Так можна. Висока штатна тактова частота модуля пам'яті ніяк не позначається на її здатності працювати на менших тактових частотах, більше того, завдяки низьким таймінгам, які можна досягти на знижених робочих частотах модуля, латентність пам'яті зменшується (іноді - істотно).

Скільки і які модулі пам'яті треба встановити у системну плату, щоб пам'ять запрацювала у двоканальному режимі?

В загальному випадку для організації роботи пам'яті в двоканальному режимі необхідна установка парного числа модулів пам'яті (2 або 4), причому в парах модулі повинні бути однакового обсягу, і, бажано (хоча і не обов'язково) - з однієї партії (або, на худий кінець, одного і того ж виробника). У сучасних системних платах слоти пам'яті різних каналів маркуються різними кольорами.

Послідовність установки модулів пам'яті у яких, і навіть всі аспекти роботи цієї плати з різними модулями пам'яті, зазвичай докладно викладаються у посібнику до системної плати.

На згадку яких виробників варто звернути увагу насамперед?

Можна відзначити кількох виробників пам'яті, які гідно зарекомендували себе на нашому ринку. Це будуть, наприклад, бренд-модулі OCZ, Kingston, Corsair, Patriot, Samsung, Transcend.

Звичайно, цей список далеко не сповнений, проте купуючи пам'ять цих виробників, можна бути впевненим у її якості з великою ймовірністю.

Як я розумію, його докази такі:

  1. У Google не використовували ECC, коли збирали свої сервери у 1999 році.
  2. Більшість помилок ОЗП – це помилки систематичні, а не випадкові.
  3. Помилки ОЗУ виникають рідко, тому що апаратне забезпеченняпокращало.
  4. Якби пам'ять ECC мала насправді важливе значення, то вона використовувалася б скрізь, а не лише на серверах. Плата за такий опціональний матеріал явно занадто сумнівна.
Давайте розглянемо ці аргументи один за одним:

1. У Google не використовували ECC у 1999 році

Якщо ви робите щось тільки через те, що колись це зробив Google, спробуйте:

A. Помістіть свої сервери у транспортні контейнери.

Сьогодні все ще пишуть статті про те, що це - чудова ідея, хоча Google лише провів експеримент, який був розцінений як невдалий. Виявляється, навіть експерименти Google не завжди вдаються. Фактично, їхня відома пристрасть до «проривних проектів» («луншоти») означає, що вони мають більше невдалих експериментів, ніж більшість компаній. На мою думку, для них це суттєва конкурентна перевага. Не варто робити цю перевагу більше, ніж вона є, сліпо копіюючи експерименти, що провалилися.

B. Викликайте пожежі у власних центрах обробки даних.

Частина посту Етвуда обговорює, наскільки дивними були ці сервери:

Деякі можуть подивитись ці ранні сервери Google і побачити непрофесійність щодо небезпеки пожежі. Не я. Я бачу тут далекоглядне розуміння того, як недороге стандартне обладнання формуватиме сучасний інтернет.

Остання частина висловленого – це правда. Але й у першій частині є частка правди. Коли Google почав розробляти власні плати, одне їх покоління мало проблему «зростання» ( ), що викликала ненульову кількість загорянь.

До речі, якщо ви перейдете до посту Джеффа і подивіться на фотографію, на яку посилається цитата, ви побачите, що на платах багато кабелів-перемичок. Це викликало проблеми та було виправлено у наступному поколінні обладнання. Також можна бачити досить неохайно виконану кабельну розводку, що додатково викликало проблеми і що було швидко усунуто. Були й інші проблеми, але я залишу їх як вправу для читача.

C. Створюйте сервери, які травмують ваших співробітників

Гострі грані одного з поколінь серверів Googleзаробили їм репутацію зроблених із «бритвових лез та ненависті».

D. Створюйте погоду у ваших центрах обробки даних

Після розмов із співробітниками багатьох великих технологічних компаній створюється враження, що у більшості компаній був такий клімат-контроль, що в їхніх центрах обробки даних утворювалися хмари чи туман. Можна було б назвати це розважливим і підступним планом Google відтворення сіетлівської погоди, щоб переманювати співробітників Microsoft. Як варіант, це міг бути план створення в буквальному значенні. хмарних обчислень». А може й ні.

Зверніть увагу, що все це Google спробував, а потім змінив. Робити помилки, а потім усувати їх - поширене явище в будь-якій організації, яка успішно займається розробками. Якщо ви обожнюєте інженерну практику, слід триматися принаймні за сучасну практику, а не за зроблене в 1999 році.

Коли Google використовував сервери без ECC в 1999 році, на них виявилася низка симптомів, які, як зрештою з'ясувалося, були спричинені пошкодженням пам'яті. У тому числі індекс пошуку, який повертав фактично випадкові результати до запитів. Реальний режим збою тут повчальний. Я часто чую, що на цих машинах можна ігнорувати ECC, тому що помилки в окремих результатах є допустимими. Але навіть якщо ви вважаєте для себе випадкові помилки припустимими, їх ігнорування означає, що існує небезпека повного пошкодження даних, якщо не проводити ретельний аналіз з метою переконатися, що одна помилка може лише трохи спотворити один результат.

У дослідженнях, проведених на файлових системах, неодноразово було показано, що, незважаючи на героїчні спроби створення систем, стійких до однієї помилки, зробити це дуже складно. По суті, кожна файлова система, що сильно тестується, може мати серйозний збій через єдину помилку (). Я не збираюся нападати на розробників файлових систем. Вони краще розуміються на такому аналізі, ніж 99,9% програмістів. Просто неодноразово вже було показано, що ця проблема настільки важка, що люди не можуть обґрунтовано обговорювати її, і автоматизований інструментальний засіб для такого аналізу ще далеко від процесу простого натискання кнопки. У своєму довіднику з комп'ютерної обробки складських даних Google обговорює виявлення та виправлення помилок, і пам'ять ECC розглядається як правильний варіант, коли очевидно, що необхідно використовувати виправлення помилок апаратного забезпечення ( ).

Google має чудову інфраструктуру. З того, що я чув про інфраструктуру в інших великих інфотехнологічних компаніях, Google є найкращим у світі. Але це не означає, що слід копіювати все, що вони роблять. Навіть якщо розглядати лише їхні добрі ідеї, для більшості компаній немає сенсу копіювати їх. Вони створили заміну планувальнику перехоплення робіт Linux, який використовує як апаратну інформацію часу виконання, так і статичні трасування, щоб дозволити використовувати переваги нового обладнання в серверних процесорах Intel, що дозволяє динамічно розбивати кеш між ядрами . Якщо використовувати це на всьому їхньому обладнанні, то Google заощадить за тиждень більше грошей, Чим компанія Stack Exchange витратила на всі свої машини за всю свою історію. Чи означає це, що ви повинні скопіювати Google? Ні, якщо на вас уже не впала манна небесна, наприклад, у вигляді того, що ваша основна інфраструктура написана на високооптимізованому C++, а не на Java або (не дай Боже) Ruby. І справа в тому, що для переважної більшості компаній написання програм мовою, яка тягне за собою 20-кратне зниження продуктивності, - цілком розумне рішення.

2. Більшість помилок ОЗУ – це систематичні помилки

Аргументація проти ECC відтворює наступний розділ дослідження помилок DRAM (виділення дано Джеффом):
Наше дослідження має кілька основних результатів. По-перше, ми виявили, що приблизно 70% збоїв DRAM є повторюваними (наприклад, постійними) збоями, тоді як тільки 30% є нестійкими (переміжними) збоями. По-друге, ми виявили, що великі багатобітові збої, такі як збої, які зачіпають весь рядок, стовпець або блок, становлять понад 40% усіх збоїв DRAM. По-третє, ми виявили, що майже 5% відмови DRAM впливають на схеми на рівні плати, такі як лінії даних (DQ) або стробування (DQS). Нарешті ми виявили, що функція Chipkill зменшила частоту відмов системи, викликаних збоями DRAM, в 36 разів.

Цитата здається дещо іронічною, оскільки вона виглядає не аргументом проти ECC, а аргументом за Chipkill – певний клас ECC. Відклавши це убік, пост Джеффа вказує, що систематичні помилки зустрічаються вдвічі частіше, ніж помилки випадкові. Потім пост повідомляє, що вони запускають мемтест на своїх машинах, коли відбуваються систематичні помилки.

По-перше, співвідношення 2:1 не таке велике, щоб просто ігнорувати випадкові помилки. По-друге, пост має на увазі віру Джефа, що систематичні помилки, по суті, незмінні і не можуть виявитися через деякий час. Це не вірно. Електроніка зношується так само, як зношуються механічні пристрої. Механізми різні, але ефекти схожі. Дійсно, якщо порівняти аналіз надійності чіпів з іншими видами аналізу надійності, то можна бачити, що вони часто використовують ті самі сімейства розподілів для моделювання відмов. По-третє, перебіг міркувань Джеффа має на увазі, що ECC не може допомогти у виявленні чи виправленні помилок, що не тільки невірно, а й прямо суперечить цитаті.

Отже, як часто ви збираєтеся запускати memtest на своїх машинах у спробах зловити ці системні помилкиі скільки втрат даних ви готові пережити? Одне з ключових застосувань ECC полягає не в тому, щоб виправити помилки, а в тому, щоб сигналізувати про помилки, завдяки чому обладнання може бути замінене до того, як станеться "silent corruption" ("приховане пошкодження даних"). Хто погодиться закривати все на машині щодня, щоб запустити memtest? Це було б набагато дорожче, ніж просто купити ECC пам'ять. І навіть якби ви змогли переконати ганяти тестування пам'яті, memtest не виявив би стільки помилок, скільки зможе знайти ECC.

Коли я працював у компанії з парком приблизно тисячу машин, ми помітили, що у нас відбуваються дивні відмови при перевірці цілісності даних, і приблизно через півроку ми зрозуміли, що відмови на одних машинах вірогідніші, ніж на інших. Ці відмови були досить рідкісними (можливо, кілька разів на тиждень у середньому), тому знадобилося багато часу для накопичення інформації та розуміння, що ж відбувається. Без знання причини аналіз логів з метою зрозуміти, що помилки були спричинені поодинокими випадками інвертування бітів (з великою ймовірністю), також був нетривіальним. Нам пощастило, що як побічний ефект процесу, який ми використовували, контрольні суми обчислювалися в окремому процесі на іншій машині в різний час, тому помилка не могла спотворити результат і поширити це пошкодження на контрольну суму.

Якщо ви просто намагаєтеся захистити себе за допомогою контрольних сум у пам'яті, є чимала ймовірність того, що ви виконаєте операцію обчислення контрольної суми на вже пошкоджених даних і отримаєте правильну контрольну суму неправильних даних, якщо ви не робите деякі дійсно незвичайні операції з обчисленнями, які дають їх власні контрольні суми. А якщо ви серйозно ставитеся до виправлення помилок, то ви, ймовірно, все ж таки використовуєте ECC.

У всякому разі, після завершення аналізу ми виявили, що memtest не міг виявити будь-які проблеми, але заміна ОЗУ на поганих машинах призвела до зменшення частоти помилок на один-два порядки. Більшість сервісів немає такого роду контрольних сум, які були у нас; ці послуги просто мовчки записуватимуть пошкоджені дані в постійне сховище і не побачать проблему, поки клієнт не почне скаржитися.

3. Завдяки розвитку апаратного забезпечення помилки стали дуже рідкісними

Даних у пості замало такого твердження. Зверніть увагу, що оскільки використання ОЗП зростає та продовжує збільшуватися експоненційно, відмови ОЗП повинні зменшуватися з більшою експонентною швидкістю, щоб фактично зменшити частоту пошкодження даних. Крім того, оскільки чіпи продовжують зменшуватися, елементи стають меншими, що робить більше актуальними проблемизносу, що обговорюються у другому пункті. Наприклад, за технології 20 нм конденсатор DRAM може накпливати десь електронів 50, і це число буде меншим для наступного покоління DRAM при збереженні тенденції зменшення.

Ще одне зауваження: коли ви платите за ECC, ви платите не просто за пам'ять ECC – ви платите за деталі (процесори, плати), які є якіснішими. Таке легко можна бачити із частотою відмови дисків, і я чув, що багато хто помічає таке у своїх особистих спостереженнях.

Якщо наводити загальнодоступні дослідження: наскільки пам'ятаю, група Андреа та Ремзі кілька років тому випустила документ SIGMETRICS, який показав, що ймовірність збою при читанні у диска SATA у 4 рази вища, ніж у диска SCSI, а ймовірність прихованого пошкодження даних – у 10 разів вища . Це співвідношення зберігалося навіть у разі використання дисків одного виробника. Немає особливої ​​причини думати, що інтерфейс SCSI має бути надійнішим, ніж інтерфейс SATA, але йдеться не про інтерфейс. Йдеться про купівлю високонадійних серверних компонентів, порівняно з клієнтськими. Можливо, надійність диска вас не цікавить, тому що у вас все на контрольних сумах, і пошкодження легко знаходяться, але є деякі види порушень, які виявити важче.

4. Якби пам'ять ECC мала дійсно важливе значення, то її використовували б скрізь, а не тільки в серверах.

Трохи перефразовуючи цей аргумент, можна сказати, що «якби ця характеристика була дійсно важлива для серверів, то вона використовувалася б і в не-серверах». Можна застосувати цей аргумент до досить великої кількості апаратних засобів сервера. Насправді, це одна з найбільш неприємних проблем, що стоять перед великими постачальниками хмарних рішень.

Вони мають достатньо важелів впливу, щоб отримувати більшість компонентів за відповідною ціною. Але поторгуватися вийде лише там, де є більше одного життєздатного постачальника.

Однією з небагатьох областей, де немає якихось життєздатних конкурентів, є виробництво центральних процесорівта відеоприскорювачів. На щастя для великих постачальників, відеоприскорювачі їм зазвичай не потрібні, потрібні процесори, багато вже давно так склалося. Було кілька спроб постачальників процесорів увійти на серверний ринок, але завжди кожна така спроба з самого початку мала фатальні недоліки, що робили очевидною її приреченість (а це часто проекти, що вимагають не менше 5 років, тобто необхідно було витратити багато часу без впевненості в успіху).

Зусилля Qualcomm отримали багато шуму, але, коли я спілкуюсь з моїми контактами у Qualcomm, вони всі кажуть мені, що зроблений у Наразічіп призначений по суті для проби. Так вийшло, тому що компанії Qualcomm потрібно було дізнатися, як зробити серверний чіп, у всіх фахівців, яких вона переманила з IBM, і що наступний чіп буде першим, який, можна сподіватися, стане конкурентоспроможним. Я покладаю великі надії на Qualcomm, а також на зусилля ARM щодо створення хороших серверних компонентів, але ці зусилля поки що не дають бажаного результату.

Майже повна непридатність поточних варіантів ARM (і POWER) (не рахуючи гіпотетичних варіантів вражаючого чіпа ARM від Apple) для більшості робочих навантажень серверів з точки зору продуктивності на долар сукупної вартості володіння (TCO) - ця тема трохи осторонь, тому я залишу її для іншої публікації. Але річ у тому, що Intel має таку позицію на ринку, що може змусити людей платити зверху за серверні функції. І Intel це робить. Крім того, деякі функції дійсно важливіші для серверів, ніж для мобільних пристроївз кількома гігабайтами оперативної пам'яті та енергетичним бюджетом у кілька ватів, мобільних пристроїв, від яких все одно очікують періодичні вильоти та перезавантаження.

Висновок

Чи слід купувати ECC-ОЗУ? Це залежить багато від чого. Для серверів це, мабуть, гарний варіантз огляду на витрати. Хоча насправді важко провести аналіз витрат/вигод, тому що досить складно визначити збитки від прихованого пошкодження даних або витрати на ризик втратити півроку часу розробника на відстеження збоїв, що перемежуються, тільки щоб виявити, що вони викликані використанням пам'яті без ECC.

Для настільних комп'ютерів я також прихильник ECC. Але якщо ви не робите регулярні бекапи, то вам корисніше вкластися в регулярні бекапи, ніж в ECC-пам'ять. І якщо у вас є резервні копіїбез ECC, ви можете легко записати пошкоджені дані в основне сховище і реплікувати ці пошкоджені дані в резервну копію.

Дякую Прабхакару Рагді, Тому Мерфі, Джею Вайскопфу, Лії Хансон, Джо Вайлдеру та Ральфу Кордерою за обговорення/коментарі/виправлення. Крім того, дякую (або, можливо, не-дякую) Лії за те, що переконала мене написати цей усний експромт як пост у блозі. Просимо вибачення за будь-які помилки, відсутність посилань і підвищену прозу; це, по суті, запис половини обговорення, і я не пояснив умови, не надав посилання або не перевірив факти на рівні деталізації, як я зазвичай роблю.

Одним із кумедних прикладів є (принаймні для мене) магічна плавка перемичка, що самовідновлюється. Хоча реалізацій багато, уявімо собі плавку перемичку на чіпі як певний резистор. Якщо ви пропускаєте через неї якийсь струм, ви повинні отримати з'єднання. Якщо струм занадто великий, то резистор розігріється і зруйнується. Це зазвичай використовується для відключення елементів на мікросхемах або таких дій, як завдання тактової частоти. Основний принцип у тому, що після згоряння перемички немає можливості повернути їх у вихідний стан.

Давним давно жив і був виробник напівпровідникових пристроїв, який трохи поспішно зі своїм виробничим процесом і дещо надмірно зменшив допуски в деякому технологічному поколінні. Через кілька місяців (або років) з'єднання між двома кінцями подібної перемички змогло знову з'явитися та відновити його. Якщо вам пощастить, то така перемичка буде чимось на зразок старшого біта множника тактової частоти, який у разі зміни буде виводити чіп з ладу. Якщо не пощастить, це призведе до прихованого пошкодження даних.

Я чув від багатьох людей у ​​різних компаніях про проблеми в цьому технологічному поколінні цього виробника, тому це не були окремі випадки. Коли я говорю, що це смішно, я маю на увазі, що кумедно почути цю історію в барі. Менш цікаво виявити через рік тестування, що деякі з ваших чіпів не працюють, тому що їх установки для перемичок безглузді, і потрібно переробити ваш чіп і відкласти випуск на 3 місяці. До речі, ця ситуація з відновленням плавки перемички - ще один приклад класу помилок, гостроту яких можна згладити за допомогою ECC.

Це не проблема Google; я згадую про це тільки тому, що багато людей, з якими спілкуюся, здивовані тим, яким чином апаратне забезпечення може вийти з ладу.

Якщо ви не хочете копатися у всій книзі, то ось потрібний фрагмент:

У системі, яка може витримати ряд відмов на програмному рівні, мінімальна вимога до апаратної частини полягає в тому, що збої цієї частини завжди виявляються і повідомляються. програмного забезпеченнядостатньо своєчасно, щоб дозволити програмній інфраструктурі обмежити їх та вжити відповідних дій щодо відновлення. Необов'язково, щоб апаратне забезпечення справлялося з усіма збоями. Це не означає, що обладнання для таких систем має бути спроектоване без можливості виправлення помилок. Всякий раз, коли функціональні можливостівиправлення помилок можуть бути запропоновані з розумною ціною або складністю, їх підтримка часто окупається. Це означає, що якщо апаратна корекція помилок була б надзвичайно дорогою, то система могла б мати можливість використання більш дешевої версії, яка надавала б можливості тільки виявлення. Сучасні системи DRAM є гарним прикладомситуації, в якій потужна корекція помилок може бути надана за дуже низьких додаткових витрат. Однак пом'якшення вимоги про виявлення апаратних помилок було набагато складніше, оскільки це означало б, що кожен програмний компонент був би обтяжений необхідністю перевірки його власного правильного виконання. На початковому етапі своєї історії Google довелося мати справу із серверами, на яких у DRAM був відсутній контроль парності. Створення індексу веб-пошуку складається, по суті, з дуже великої операції сортування/злиття, яка використовує кілька машин. У 2000 році одне із щомісячних оновлень веб-індексу Google не пройшло попередню перевірку, коли виявилося, що деяке підмножина перевірених запитів повертає документи, мабуть, випадковим чином. Після деякого дослідження в нових індексних файлахбуло виявлено ситуацію, яка відповідала фіксації біта на нулі в певному місці в структурах даних, що було негативним побічним ефектом потокової передачі великої кількості даних через несправний чіп DRAM. До структур даних індексу були додані перевірки несуперечності, щоб звести до мінімуму ймовірність повторення цієї проблеми, і надалі проблем такого характеру не було. Однак слід зазначити, що цей спосіб не гарантує 100% виявлення помилок у проході індексації, так як не всі позиції пам'яті перевіряються – інструкції, наприклад, залишаються без перевірки. Це спрацювало тому, що структури даних індексу були настільки більшими, ніж усі інші дані, що беруть участь у обчисленні, що наявність цих самоконтрольованих структур даних робило дуже ймовірним, що машини з дефектним DRAM будуть ідентифіковані та виключені з кластера. Наступне покоління машин у Google вжемістило виявлення парності у пам'яті, і як тільки ціна пам'яті з ECC опустилася до конкурентного рівня, усі наступні покоління використовували ECC-DRAM.

Теги: Додати теги

#ECC #Registered #Buffered #Parity #SPD

Error Correct Code (ECC)

ECC або Error Correct Code - Виявлення та виправлення помилок (можливі інші розшифровки тієї ж абревіатури) - алгоритм, що прийшов на зміну "контролю парності". На відміну від останнього кожен біт входить більш ніж одну контрольну суму, що дозволяє у разі виникнення помилки в одному біті відновити адресу помилки і виправити її. Як правило, помилки у двох бітах також детектуються, хоч і не виправляються. Для реалізації цих можливостей на модуль встановлюється додаткова мікросхема і він стає 72-розрядним, на відміну від 64 розрядів даних звичайного модуля.

ECC підтримують усі сучасні Материнські платипризначені для серверних рішень, а також деякі чіпсети "загального призначення". Деякі типи (Registered, Full Buffered) випускаються лише у ECC варіанті. Слід зазначити, що ECC не є панацеєю від дефективної пам'яті і застосовується для виправлення випадкових помилок, знижуючи ризик виникнення неполадок у роботі комп'ютера від випадкової зміни вмісту осередків пам'яті, що викликається зовнішніми факторами, такими як фонова радіація.

Buffered

Buffered – буферизований модуль. Через високу сукупну електричну ємність тривалий час їх "зарядки" призводить до великих витрат часу на операції запису. Щоб уникнути цього, деякі модулі (як правило, 168-контактні DIMM) забезпечуються спеціальною мікросхемою (буфером), яка зберігає дані відносно швидко, що звільняє контролер. Буферизовані DIMM зазвичай несумісні з небуферизованими. Модулі з частковою буферизацією називаються також "реєстровим" ( Registered), а модулі з повною буферизацією (Full Buffered) - FB-DIMM. При цьому під "небуферизованими" маються на увазі звичайні модулі пам'яті без засобів буферизації.

Parity

Parity - парність, модулі з контролем парності, а також контроль парності. Досить старий принцип перевірки цілісності даних. Суть методу полягає в тому, що для байта даних на стадії запису обчислюється контрольна сума, яка зберігається як спеціальний біт парності в окремій мікросхемі. Під час читання даних контрольна сума обчислюється знову і порівнюється з бітом парності. Якщо вони збіглися, дані вважаються автентичними, інакше генерується повідомлення про помилку парності (як правило, що призводить до зупинення системи). До явних недоліків методу відносяться дорожнеча пам'яті, яка потрібна для зберігання зайвих біт парності, незахищеність від подвійних помилок (а також помилкове спрацьовування при помилці в биті парності), зупинка системи навіть при непринциповій помилці (скажімо, у відеокадрі). Нині не застосовуються.

Мікросхема SPD

SPD - мікросхема на модулі пам'яті DIMM, що містить усі дані про нього (зокрема, інформацію про швидкодію), необхідні забезпечення нормальної роботи. Ці дані читаються на етапі самотестування комп'ютера, задовго до завантаження операційної системи та дозволяють налаштувати параметри звернення до пам'яті навіть за одночасної наявності у системі різномастних модулів пам'яті. Деякі материнські плати відмовляються працювати з модулями, на яких не встановлена ​​мікросхема SPD, проте такі модулі зараз дуже рідкісні і є переважно модулями PC-66.

Поясніть, що таке “Підтримка ECC” на оперативній пам'яті

  1. оперативна роверка пам'яті на помилки
  2. це функція корекції помилок. така пам'ять ставиться на сервера, адже не можна щоб вони клали, відключалися чи перевантажувалися через помилок. для домашнього комп'ютера це не необхідна річ, хоч і корисна. якщо вирішили собі таку поставку-переконайтеся, що ваша матплата підтримує такий тип озу з ЕСС.
  3. Так чи можна обмежитися програмою memtest? чи ця технологія постійно моніторить і виправляє дрібні значення даних пам'яті?
  4. ECC (Error Correct Code) – виявлення та виправлення помилок (можливі інші розшифровки тієї ж абревіатури) – алгоритм, що прийшов на зміну “контролю парності”. На відміну від останнього кожен біт входить більш ніж одну контрольну суму, що дозволяє у разі виникнення помилки в одному біті відновити адресу помилки і виправити її. Як правило, помилки у двох бітах також детектуються, хоч і не виправляються. Для реалізації цих можливостей на модуль встановлюється додаткова мікросхема пам'яті і він стає 72-розрядним, на відміну від 64 розрядів даних звичайного модуля. ECC підтримують всі сучасні материнські плати, призначені для серверних рішень, і навіть деякі чіпсети “загального призначення”. Деякі типи пам'яті (Registered, Full Buffered) випускаються лише у ECC варіанті. Слід зазначити, що ECC не є панацеєю від дефективної пам'яті і застосовується для виправлення випадкових помилок, знижуючи ризик виникнення несправностей у роботі комп'ютера від випадкової зміни вмісту осередків пам'яті, викликаного зовнішніми факторами, такими як фонова радіація.
    Регістровані модулі пам'яті рекомендуються до використання в системах, що вимагають (або підтримують) 4 Гб і більше оперативної пам'яті. Вони мають розрядність 72 біта, т. е. є модулями з ЕСС, і містять додаткові мікросхеми регістрів для часткової буферизації.
    PLL-Phase Locked Loop – ланцюг автопідстроювання частоти та фази сигналу, що служить для зниження електричного навантаження на контролер пам'яті та підвищення стабільності роботи при використанні великої кількості мікросхем пам'яті, застосовується у всіх буферизованих модулях пам'яті.
    Buffered – буферизований модуль. Через високу сукупну електричну ємність сучасних модулів пам'яті, тривалий час їх “зарядки” призводить до великих витрат часу на операції запису. Щоб уникнути цього, деякі модулі (як правило, 168-контактні DIMM) забезпечуються спеціальною мікросхемою (буфером) , яка зберігає дані відносно швидко, що звільняє контролер. Буферизовані DIMM зазвичай несумісні з небуферизованими. Модулі з частковою буферизацією називаються також "реєстровим" ("Registered"), а модулі з повною буферизацією (Full Buffered) - "FB-DIMM". При цьому під "небуферизованими" маються на увазі звичайні модулі пам'яті без засобів буферизації.
    Parity - парність, модулі з контролем парності, а також контроль парності. Досить старий принцип перевірки цілісності даних. Суть методу полягає в тому, що для байта даних на стадії запису обчислюється контрольна сума, яка зберігається як спеціальний біт парності в окремій мікросхемі. Під час читання даних контрольна сума обчислюється знову і порівнюється з бітом парності. Якщо вони збіглися, дані вважаються автентичними, інакше генерується повідомлення про помилку парності (як правило, що призводить до зупинення системи). До явних недоліків методу відносяться дорожнеча пам'яті, яка потрібна для зберігання зайвих біт парності, незахищеність від подвійних помилок (а також помилкове спрацьовування при помилці в биті парності), зупинка системи навіть при непринциповій помилці (скажімо, у відеокадрі). Нині не застосовуються.
    SPD – мікросхема на модулі пам'яті DIMM, що містить усі дані про нього (зокрема, інформацію про швидкодію), необхідні забезпечення нормальної роботи. Ці дані читаються на етапі самотестування комп'ютера ще задовго до завантаження операційної системи і дозволяють налаштувати параметри звернення до пам'яті навіть при одночасному наявності в системі різномастних модулів пам'яті. Деякі материнські плати відмовляються працювати з модулями, на яких не встановлена ​​мікросхема SPD, проте такі модулі зараз дуже рідкісні і є переважно модулями PC-66.
  5. memtest про перевірка може не виявити помилки а ось перевірка в мемтесті – Test 1 Addresstest, ownaddress глибокий тест для виявлення помилок в адресаційній прописці пам'яті – виявляє такі помилки добре, так що якщо у вас з'явилися сині екранице в основному оперативка або жорсткий диск
  6. Говорили тут уже, використовуй windowsfix.ru

ECC (Error Correct Code - виявлення та виправлення помилок) служить для виправлення випадкових помилок пам'яті, що викликаються різними зовнішніми факторами, і є удосконаленим варіантом системи «контролю парності».

Фізично ECC реалізується як додаткової 8-разрядной мікросхеми пам'яті, встановленої поруч із основними.

Таким чином, модулі з ECC є 72-розрядним (на відміну від стандартних 64-розрядних модулів).

Деякі типи пам'яті (Registered, Full Buffered) випускаються лише у ECC варіанті.

Драйвер AMD Radeon Software Adrenalin Edition 19.9.2 Optional

Нова версія драйвера AMD Radeon Software Adrenalin Edition 19.9.2 Optional підвищує продуктивність у грі «Borderlands 3» та додає підтримку технології корекції зображення Radeon Image Sharpening.

Накопичувальний оновлення Windows 10 1903 KB4515384 (додано)

10 вересня 2019 р. Microsoft випустила накопичувальне оновлення для Windows 10 версії 1903 - KB4515384 з рядом покращень безпеки та виправленням помилки, яка порушила роботу Windows Search та викликала високе завантаження ЦП.

Драйвер Game Ready GeForce 436.30 WHQL

Компанія NVIDIA випустила пакет драйверів Game Ready GeForce 436.30 WHQL, який призначений для оптимізації в іграх: "Gears 5", "Borderlands 3" та "Call of Duty: Modern Warfare", "FIFA 20", "The Surge 2" та "Code Vein», виправляє ряд помилок, помічених у попередніх релізах, та розширює перелік дисплеїв категорії G-Sync Compatible.

Драйвер AMD Radeon Software Adrenalin 19.9.1 Edition

Перший вересневий випуск графічних драйверів AMD Radeon Software Adrenalin 19.9.1 Edition оптимізовано для гри Gears 5.



Завантаження...
Top