Примітка: ця відповідь стосується не фізики, а помилок тихої пам'яті з модулями пам'яті, що не належить до ECC. Деякі помилки можуть виникнути з космосу, а деякі - з внутрішнього простору робочого столу.
Існує кілька досліджень відмов пам’яті ECC на великих фермах серверів, таких як кластери CERN та центри обробки даних Google. Обладнання серверного класу з ECC може виявляти та виправляти всі одиночні бітові помилки та виявляти багато багатобітних помилок.
Ми можемо припустити, що настільних ПК (і не-ECC мобільних смартфонів) існує безліч настільних комп'ютерів, які не є ECC. Якщо ми перевіримо папери на предмет коефіцієнтів помилок, що виправляються за ECC (поодинокі бітфліпи), ми можемо знати швидкість пошкодження пам’яті безшумної пам’яті, що не належить до ECC.
Широкомасштабне дослідження CERN 2007 "Цілісність даних" : постачальники заявляють " Швидкість помилок бітів 10 -12 для модулів пам'яті ", " спостережуваний коефіцієнт помилок на 4 порядки нижче, ніж очікувалося ". Для об'ємних даних (8 Гб / с зчитування пам'яті) це означає, що один біт перегортання може відбуватися щохвилини (10 -12 постачальників BER) або один раз на два дні (10 -16 BER).
У статті Google "Помилки DRAM в дикій природі: широкомасштабне поле дослідження" говориться, що може бути до 25000-75000 однорозрядних FIT на Мбіт ( невдачі в часі на мільярд годин ), що дорівнює 1 - 5 біт помилки за годину для 8 ГБ оперативної пам’яті після моїх розрахунків. У роботі сказано те саме: " середні виправні коефіцієнти помилок 2000–6000 на ГБ на рік ".
Звіт Sandia 2012 року "Виявлення та виправлення безшумних пошкоджень даних для широкомасштабних високоефективних обчислень" : "подвійні бітові гортання вважаються малоймовірними", але в густому Cray XT5 ORNL вони "з розрахунку один на день для 75000+ DIMM" навіть з ECC. І однобітних помилок повинно бути вище.
Отже, якщо програма має великий набір даних (кілька ГБ) або має високу швидкість читання або запису пам'яті (ГБ / с або більше), і вона працює протягом декількох годин, то ми можемо очікувати до декількох мовчазних бітових переворотів на апаратному забезпеченні робочого столу. Ця швидкість не виявляється за допомогою метеста, і DRAM-модулі добре.
Довгий кластер працює на тисячах комп'ютерів, що не належать до ЕКС, як, наприклад, мережеві обчислення BOINC в Інтернеті, завжди матимуть помилки в біткових обертах пам’яті, а також від помилок на диску та в мережі.
А для більших машин (10 тис. Серверів) навіть із захистом ECC від однобітних помилок, як ми бачимо у звіті Sandia за 2012 рік, можна робити подвійні біти фліп щодня, так що у вас не буде шансів запустити паралель повнорозмірного розміру програма на кілька днів (без регулярної контрольної точки та перезавантаження з останньої хорошої контрольної точки у разі подвійної помилки). Величезні машини також отримають біт-фліп у своїх кешах та регістрах процесорів (як архітектурні, так і внутрішні мікросхеми, наприклад, на шляху даних ALU), оскільки не всі вони захищені ECC.
PS: Все буде набагато гірше, якщо модуль DRAM поганий. Наприклад, я встановив нову DRAM в ноутбук, який помер через кілька тижнів. Це почало створювати багато помилок пам'яті. Що я отримую: ноутбук зависає, Linux перезавантажується, запускає fsck, знаходить помилки в кореневій файловій системі та каже, що хоче зробити перезавантаження після виправлення помилок. Але при кожному наступному перезавантаженні (я робив близько 5-6 з них) все ще виявляються помилки в кореневій файловій системі.