Когда тестирование бессильно. Космические лучи меняют биты памяти чаще, чем принято думать

Когда тестирование бессильно. Космические лучи меняют биты памяти чаще, чем принято думать

Как известно, все объекты на Земле подвергаются бомбардировке высокоэнергетическими частицами из различных источников. И если частица «снайперским выстрелом» попадёт точно в электронный компонент, то последствия могут быть неприятными, вплоть до сбоя компонента.

В авионике такие феномены называют «одиночные сбои» (single event upset, SEU). Для авиации космическое излучение особенно опасно, потому что лайнеры поднимаются в верхние слои атмосферы, где защита магнитного поля Земли намного слабее.

Но SEU происходят и на обычных компьютерах, в смартфонах, на серверах и т. д. Причём довольно часто. И если такой сбой произошёл во время тестирования, вы никогда не сможете его повторить, потому что состояние Вселенной отличается в каждый момент времени.

Известные примеры сбоев

В мае 2013 года на выборах в Бельгии многие регионы использовали электронное голосование. Каждый избиратель выбирал имя стилусом на экране. На всякий случай сохранялись резервные копии голосов в виде индивидуальных магнитных карт.

При подсчёте результатов голосования в брюссельском муниципалитете Schaerbeek произошёл странный инцидент. Общее число голосов превысило количество избирателей на данном участке. Пришлось достать магнитные карточки из резервного хранилища — и пересчитать их.

Оказалось, что реальных карточек за одного из кандидатов на 4096 меньше, чем показала система.

Эксперты проверили код программного обеспечения, но не нашли такого бага. Тестирование аппаратного обеспечения тоже не дало результата. Ошибку невозможно было воспроизвести.

Осталась только версия, что где-то в компьютерной памяти произошла перемена одного-единственного бита, потому что 4096 — это как раз один разряд в двоичной системе.

409610 = 10000000000002

На аппаратном уровне в машине для голосования это означает включение/выключение единственного транзистора. То есть вышеупомянутый баг может возникнуть, если данный транзистор изменит значение с 0 на 1.

Возможно, такое и произошло. Проверить данную версию очень трудно, потому что SEU — «обратимый» сбой. Он практически не оставляет необратимых изменений (повреждений). Но именно эта причина указана основной версией в официальном отчёте об инциденте.

Это далеко не первый случай, когда произошла такая история. Ещё в 1978 году Intel сообщала о странных изменениях в регистрах модулей памяти P2107C, которые во время тестирования меняли значение с 1 на 0 без программного кода, который мог вызвать такие изменения.

Проблема оказалась в корпусировке микросхем. Дело в том, что корпусировка выполнялась на заводе в Колорадо рядом с заброшенным урановым карьером. Радиационное загрязнение попало в реку Колорадо, а оттуда — на завод Intel.

Инженеры выяснили, что даже остаточных следов урана или тория в корпусе микросхемы памяти достаточно для повреждения данных. Пролетающие альфа-частицы способны временно изменить заряд отдельных ячеек памяти (как на картинке в начале статьи).

Инженеры Intel провели эксперимент с корпусировкой разной степени радиоактивности — и обнаружили точную корреляцию количества альфа-частиц с количеством случайных ошибок.


Источник: A New Physical Mechanism for Soft Errors in Dynamic Memories, 16th International Reliability Physics Symposium, 18-20 April 1978, doi: 10.1109/IRPS.1978.362815

Опубликованная научная статья вызвала большой резонанс в индустрии — и с тех пор производители микросхем стали более тщательно подходить к корпусировке, избегая радиоактивных материалов.

Разумеется, альфа-излучение — не единственный враг электроники. Из космоса тоже прилетает немало высокоэнергетических частиц. Количество ионов на квадратный сантиметр зависит от высоты над уровнем моря.

Источником значительной части частиц является Солнце, но это относительно низкоэнергетические частицы. Больше энергия у тех, что образовались в результате взрыва сверхновых. А максимальная энергия — у частиц, которые образовались в результате активности чёрных дыр в дальних частях нашей и соседних галактик. Отражаясь от магнитных полей, частицы многократно меняют направление, могут ускоряться и миллиарды лет путешествовать по Вселенной (см. Origin of Cosmic Rays от 16 марта 2012 года, arXiv:1203.3681). Происхождение частицы можно лишь предположить исходя из её энергии. Ситуация примерно как с метеоритами. Чем выше скорость камня — тем дальше отправитель.

У субатомных частиц космического излучения гигантская энергия, и в результате столкновения с материальными ядрами создаётся каскад новых частиц, которые порождают новые столкновения: пионы, нейтроны, протоны, мюоны, электроны, позитроны, фотоны. В научной статье Зиглера Terrestrial cosmic rays (IBM Journal of Research and Development, doi:10.1147/rd.401.0019) изучается каскад, рассеяние и энергия некоторых частиц этого потока.


Источник: Terrestrial cosmic rays, doi:10.1147/rd.401.0019

Такой бомбардировке подвергаются наши микросхемы. Возможно, одна из этих частиц и стала причиной изменения заряда в транзисторе на бельгийских выборах. Исследование IBM от 1979 года показывает примерный уровень ошибок из-за космического излучения в некоторых кремниевых микросхемах.


Источник: Effect of Cosmic Rays on Computer Memories (1979), Science, doi:10.1126/science.206.4420.776

Разработчики иногда думают, что всё в этом мире работает абсолютно предсказуемо. Но тестировщикам и специалистам по QA приходится учитывать физическую реальность. Они знают, что абсолютной предсказуемости не существует.

В современных микросхемах компьютерной памяти и CPU проблема усугубляется тем, что производители начинают использовать многослойную компоновку типа 3D NAND с несколькими десятками активных слоёв друг над другом. Такие структуры невозможно протестировать низкоэнергетическими ионами из-за большой глубины чувствительных слоёв.


Источник: Investigating the Effects of Cosmic Rays on Space Electronics

Телеметрия Mozilla

В этом году представители Mozilla обсуждали возможность, как на базе своей телеметрии найти примеры SEU.

Они предлагали посмотреть на характерные изменения символов в коде, которые соответствуют разнице в 1 бит, например:

"o".charCodeAt() -"n".charCodeAt()
1

В связи с этим у специалистов Mozilla даже возникла идея, что с помощью телеметрии Firefox они могут детектировать всплески ионизирующего излучения на Земле почти в реальном времени.

Mozilla собирает 100 ТБ в день телеметрии (снимков памяти) у пользователей Firefox. Таким образом, если предположить ориентировочно 1 битфлип на 256 МБ оперативной памяти в месяц, то в телеметрии Mozilla, должно быть:

1*4*1024 = 4096 битфлипов на 1 ТБ в месяц

то есть

4096/30= 136,5(3) битфлипов на 1 ТБ в день

Получается, в телеметрии Mozilla может присутствовать 13 653 SEU в день, если мы не напутали с расчётами.

Осталось только найти способ детектировать SEU, кроме очевидных примеров c изменением букв (см. выше).

Частота компьютерных сбоев резко возрастает при увеличении высоты над уровнем моря, за пределами гелиосферы. В 1970-е годы американцами был зафиксирован уровень ошибок в спутниковых микросхемах из-за космического излучения 1,5 × 10−3 на микросхему в год (см. Binder, D., Smith, E. C., & Holman, A. B. Satellite Anomalies from Galactic Cosmic Rays. IEEE Transactions on Nuclear Science, doi:10.1109/tns.1975.4328188). После этого защита космической электроники была серьёзно усилена. Но до сих пор большие проблемы возникают из-за самых высокозаряженных тяжёлых ионов с энергией до 1020 эВ (см. статью Investigating the Effects of Cosmic Rays on Space Electronics, опубликована 18 сентября 2020 года в журнале Frontiers in Physics, doi: 10.3389/fphy.2020.00318).

Первые исследования для авионики

Авионика — совокупность всей электроники, которая применяется в авиации.

Первые серьёзные исследования эффектов SEU в авионике датируются началом девяностых (1993, 1996).

В 90-е данные военных/экспериментальных полётов и лабораторных испытаний показали, что на большой высоте обычные (незащищённые) SRAM на 64 и 256 К демонстрируют значительное количество SEU из-за быстрых нейтронов, возникающих под воздействием космических частиц. Тогда возникла идея рассмотреть схему обнаружения и коррекции ошибок для всех конструкций авионики.

Результаты из исследования 1993 года:

Данные 1996 года:

В 2015 году были проведён эксперимент Radiation Dosimetry Experiment (RaD-X) с замером частоты SEU на высоте 38 км с воздушного шара.

Эксперимент 1996 года показал значительную частоту ошибок компьютерной памяти на уровне моря:

Есть версия, что именно SEU стала причиной инцидента с рейсом Qantas flight 72, когда Airbus A330 резко спикировал вниз из-за неожиданного изменения бита angle of attack в электронной системе управления ARINC.

К счастью, пилоты успели уменьшить угол атаки и совершить аварийную посадку.

Никакой магии

Конечно, SEU не должны стать «универсальной причиной» для оправдания любых сбоев, причина которых на первый взгляд непонятна. Вместо того чтобы разобраться в истинной причине бага, легко сослаться на «космическое излучение». Мол, в соседней галактике как раз произошло слияние сверхмассивных чёрных дыр…

Конечно, у любого якобы «магического» явления всегда найдётся причина и рациональное объяснение… По этому поводу можно вспомнить байку о зарубежных нейлоновых чулках, которые выводили из строя советские ЭВМ («вражеский нейлон»).

Судя по всему, в мире не существует ничего идеального. Ошибки неизбежны. Поэтому для памяти существуют механизмы коррекции ошибок вроде ECC. Всё приходится многократно проверять и перепроверять. И даже это не гарантирует идеального результата. Любая система рано или поздно падает. Вопрос только в количестве девяток после запятой, но показатель ровно 100% надёжности невозможен в принципе из-за физической природы окружающего мира, встроенных в него ошибок и непредсказуемости.

Даже в пустоте абсолютного вакуума из квантового возмущения рождаются новые частицы, собственно, примерно так появилась наша Вселенная, по одной из текущих версий. Скажите, разве можно надёжно прогнозировать реальность и тестировать её в условиях квантовой неопределённости? Иногда даже кажется удивительным, когда наши программы выдают одинаковый результат на каждом прогоне.

Биологические SEU

По мнению некоторых биологов, аналогичные сбои из-за космического излучения происходят также в биологических «программах» — в геноме живых организмов. Речь о случайных изменениях участков ДНК. Важно понимать, что случайные мутации являются важной частью эволюции (см. The genomic rate of adaptive evolution, doi: 10.1016/j.tree.2006.06.015). Некоторые из мутаций оказываются удачными — и позволяют популяции приспособиться к непредсказуемо изменившимся условиям.

То есть эволюционный прогресс невозможен без постоянного тестирования и ошибок. Нет ошибок — нет прогресса. А источник ошибок — генетические мутации.

Непредсказуемые случайности нельзя недооценивать ни в одной сфере жизни. Та же космическая частица в любой момент может попасть куда угодно: не только в компьютерную память, но и на сетчатку глаза (космонавты на орбите якобы видят световые вспышки) или прямо в мозг.

Учёные ещё не разобрались, как рождаются человеческие мысли и как они взаимодействуют друг с другом. По одной из последних теорий, это генерация электромагнитных полей группами нейронов в разных частях мозга. То есть мысли — это не конкретные нейроны, а скорее определённые поля, которые могут генерироваться разными комбинациями нейронов. Подробнее см. Beyond dimension reduction: Stable electric fields emerge from and allow representational drift. Статья опубликована 8 марта 2022 года в журнале NeuroImage (doi: 10.1016/j.neuroimage.2022.119058).


Оценка амплитуды нейронного электрического поля на каждом электроде в течение 800 миллисекунд, источник

Если пофантазировать, то вполне можно допустить, что частица из дальней галактики может случайным образом сгенерировать совершенно случайную мысль у одного человека. Эдакий биологический SEU с непредсказуемыми последствиями.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

 

Источник

Читайте также