Введение

Тип вычислительной ошибки

В электронике и вычислительной технике мягкая ошибка — это тип ошибки, при которой сигнал или данные оказываются неверными. Ошибки могут быть вызваны дефектом, обычно понимаемым как ошибка в проектировании или изготовлении, или неисправным компонентом. Мягкая ошибка — это также неверный сигнал или данные, при этом не предполагается наличие какой-либо ошибки или поломки как причины. После обнаружения мягкой ошибки нет оснований полагать, что надежность системы снизилась. Одной из причин возникновения мягких ошибок являются одиночные сбои, вызванные космическими лучами. В системе памяти компьютера мягкая ошибка может изменить инструкцию в программе или значение данных. Обычно мягкие ошибки можно устранить путем холодной перезагрузки компьютера. Мягкая ошибка не повреждает аппаратное обеспечение системы; ущерб наносится только обрабатываемым данным. Существует два типа мягких ошибок: мягкая ошибка на уровне чипа и мягкая ошибка на уровне системы. Мягкие ошибки на уровне чипа возникают, когда частицы попадают в чип, например, когда вторичные частицы от космических лучей попадают на кремниевую матрицу. Если частица с определенными свойствами попадает в ячейку памяти, это может привести к изменению состояния ячейки на другое значение. Атомная реакция в этом примере настолько мала, что не повреждает физическую структуру чипа. Мягкие ошибки на системном уровне возникают, когда обрабатываемые данные подвергаются воздействию шума, как правило, когда данные находятся в шине данных. Компьютер пытается интерпретировать шум как бит данных, что может привести к ошибкам при адресации или обработке программного кода. Неверный бит данных может даже сохраниться в памяти и вызвать проблемы в дальнейшем. При обнаружении мягкой ошибки ее можно исправить, перезаписав правильные данные вместо ошибочных. Высоконадежные системы используют коррекцию ошибок для исправления мягких ошибок в режиме реального времени. Однако во многих системах может быть невозможно определить правильные данные или даже обнаружить наличие ошибки. Кроме того, до того как произойдет исправление, система может аварийно завершить работу, в этом случае процедура восстановления должна включать перезагрузку. Мягкие ошибки связаны с изменением данных — например, электронов в схеме хранения — но не с изменением самой физической схемы, атомов. Если данные переписать, схема снова будет работать исправно. Мягкие ошибки могут возникать на линиях передачи, в цифровой логике, аналоговых схемах, магнитных носителях и в других местах, но наиболее известны в полупроводниковых устройствах памяти.

Критическая зарядка

Испытывает ли схема мягкую ошибку, зависит от энергии входящей частицы, геометрии воздействия, места попадания и конструкции логической схемы. Логические схемы с большей емкостью и более высоким напряжением питания менее подвержены ошибкам. Эта комбинация емкости и напряжения описывается параметром критического заряда, Qcrit – минимальным возмущением заряда, необходимого для изменения логического уровня. Более высокий Qcrit означает меньшую вероятность мягких ошибок. К сожалению, более высокий Qcrit также означает более медленную работу логического элемента и большее энергопотребление. Уменьшение размеров элементов чипа и напряжения питания, что желательно по многим причинам, приводит к снижению Qcrit. Таким образом, значимость мягких ошибок возрастает с развитием чиповых технологий. В логической схеме Qcrit определяется как минимальное количество индуцированного заряда, необходимое в узле схемы для генерации импульса напряжения, который распространится от этого узла к выходу и будет обладать достаточной длительностью и амплитудой для надежной фиксации. Поскольку логическая схема содержит множество узлов, которые могут быть затронуты, и каждый узел может иметь уникальную емкость и расстояние до выхода, Qcrit обычно характеризуется для каждого узла отдельно.

Альфа-частицы от распада упаковки

Мягкие ошибки стали широко известны с появлением динамической оперативной памяти в 1970-х годах. В этих первых устройствах керамические материалы упаковки чипов содержали небольшое количество радиоактивных примесей. Для предотвращения избыточных мягких ошибок требуются очень низкие скорости распада, и с тех пор производители чипов периодически сталкивались с проблемами загрязнения. Поддерживать необходимую чистоту материалов крайне сложно. Для обеспечения надежной работы большинства схем необходимо контролировать скорость испускания альфа-частиц для критически важных материалов упаковки на уровне менее 0,001 отсчетов в час на см² (отс/ч/см²). Для сравнения, скорость счета для типичной подошвы обуви составляет от 0,1 до 10 отс/ч/см². Радиоактивный распад упаковки обычно вызывает мягкую ошибку посредством испускания альфа-частиц. Положительно заряженная альфа-частица проходит через полупроводник и нарушает распределение электронов в нем. Если возмущение достаточно велико, цифровой сигнал может измениться с 0 на 1 или наоборот. В комбинационной логике этот эффект носит преходящий характер, возможно, длящийся доли наносекунды, что часто приводит к тому, что мягкие ошибки в комбинационной логике остаются незамеченными. В последовательной логике, такой как триггеры и оперативная память, даже это кратковременное нарушение может быть сохранено на неопределенный срок и впоследствии прочитано. Поэтому разработчики, как правило, более осведомлены о проблеме в схемах хранения. В статье, представленной на Black Hat в 2011 году, обсуждаются реальные последствия для безопасности подобных инверсий битов в системе доменных имен Интернета. В статье было выявлено до 3434 некорректных запросов в день из-за изменений битов для различных распространенных доменов. Многие из этих инверсий битов, вероятно, связаны с аппаратными проблемами, но некоторые могут быть вызваны альфа-частицами. Эти ошибки могут быть использованы злоумышленниками в форме битсквоттинга. Исаак Азимов получил письмо с поздравлениями в связи со случайным предсказанием ошибок оперативной памяти, вызванных альфа-частицами, в романе, написанном в 1950-х годах.

Космические лучи создают энергичные нейтроны и протоны

Когда в электронной промышленности определили, как контролировать загрязнения при производстве корпусов, стало ясно, что существуют и другие причины возникновения ошибок. Джеймс Ф. Зиглер возглавил исследовательскую программу в IBM, которая завершилась публикацией ряда статей (Ziegler и Lanford, 1979), демонстрирующих, что космические лучи также могут вызывать случайные (мягкие) ошибки. Фактически, в современных устройствах космические лучи могут быть основной причиной таких ошибок. Хотя первичные частицы космических лучей обычно не достигают поверхности Земли, они создают каскад энергичных вторичных частиц. На поверхности Земли приблизительно 95% частиц, способных вызывать случайные ошибки, – это энергичные нейтроны, а остальные состоят из протонов и пионов. В 1996 году компания IBM оценила, что для настольного компьютера ожидается одна ошибка в месяц на 256 МиБ оперативной памяти. По мере увеличения плотности интеграции, компания Intel ожидает, что количество ошибок, вызванных космическими лучами, будет возрастать и станет ограничивающим фактором при проектировании. Средняя частота случайных ошибок, вызванных космическими лучами, обратно пропорциональна активности солнечных пятен. То есть, среднее количество случайных ошибок уменьшается в период максимальной активности солнечных пятен и увеличивается в период их минимума. Этот контринтуитивный результат объясняется двумя причинами. Солнце обычно не производит частиц космического излучения с энергией выше 1 ГэВ, способных проникать в верхние слои атмосферы Земли и создавать каскады частиц, поэтому изменения солнечного потока не оказывают прямого влияния на количество ошибок. Кроме того, увеличение солнечного потока в период активности действительно изменяет магнитное поле Земли, обеспечивая некоторую дополнительную защиту от космических лучей высокой энергии, что приводит к уменьшению количества частиц, создающих каскады. В любом случае, эффект относительно невелик и приводит к модуляции потока энергичных нейтронов в Нью-Йорке на ±7%. Аналогичное влияние наблюдается и в других местах. Один эксперимент показал, что частота случайных ошибок на уровне моря составляет 5950 сбоев за время эксплуатации (FIT = сбоев на миллиард часов) на чип DRAM. Когда та же экспериментальная установка была перемещена в подземное хранилище, защищенное толщей горных пород, эффективно блокирующих все космические лучи, случайных ошибок зарегистрировано не было. В этом тесте все остальные причины случайных ошибок были слишком малы, чтобы их можно было измерить по сравнению с частотой ошибок, вызванных космическими лучами. Энергичные нейтроны, генерируемые космическими лучами, могут терять большую часть своей кинетической энергии и достигать теплового равновесия с окружающей средой при рассеянии в материалах. Полученные нейтроны называются тепловыми нейтронами и имеют среднюю кинетическую энергию около 25 миллиэлектронвольт при 25 °C. Тепловые нейтроны также производятся источниками ионизирующего излучения окружающей среды, такими как распад природного урана или тория. Поток тепловых нейтронов от источников, отличных от каскадов космических лучей, может быть заметен даже в подземном расположении и вносить существенный вклад в возникновение случайных ошибок в некоторых схемах.

Тепловизные нейтроны

Нейтроны, потерявшие кинетическую энергию до достижения теплового равновесия с окружающей средой, являются важной причиной возникновения случайных ошибок в некоторых схемах. При низких энергиях многие реакции захвата нейтронов становятся значительно более вероятными и приводят к делению определенных материалов, в результате чего образуются заряженные вторичные частицы как продукты деления. Для некоторых схем особенно важен захват теплового нейтрона ядром изотопа 10B бора. Эта ядерная реакция эффективно генерирует альфа-частицу, ядро 7Li и гамма-излучение. Любая из заряженных частиц (альфа или 7Li) может вызвать случайную ошибку, если она образуется в непосредственной близости, примерно в 5 мкм, от критического узла схемы. Поперечное сечение захвата для 11B на 6 порядков меньше и не способствует возникновению случайных ошибок. Бор использовался в BPSG – изоляторе во взаимосвязанных слоях интегральных схем, особенно в нижнем слое. Введение бора снижает температуру плавления стекла, улучшая характеристики растекания и выравнивания поверхности. В этом применении стекло содержит от 4 до 5 мас. % бора. Естественно встречающийся бор состоит из 20% 10B и 80% изотопа 11B. Случайные ошибки вызываются высоким содержанием 10B в этом критическом нижнем слое некоторых устаревших технологических процессов производства интегральных схем. Бор-11, используемый в низких концентрациях в качестве p-типа легирующей примеси, не способствует возникновению случайных ошибок. Производители интегральных схем отказались от использования диэлектриков, содержащих бор, к тому времени, когда размеры отдельных компонентов схем уменьшились до 150 нм, в основном из-за этой проблемы. В критически важных конструкциях используется обедненный бор, состоящий почти исключительно из изотопа 11B, чтобы избежать этого эффекта и, следовательно, снизить частоту случайных ошибок. Бор-11 является побочным продуктом ядерной промышленности. Для применения в медицинской электронной аппаратуре этот механизм возникновения случайных ошибок может быть особенно важен. Нейтроны образуются в процессе высокоэнергетической лучевой терапии рака с использованием фотонного пучка с энергией выше 10 МэВ. Эти нейтроны замедляются при рассеянии от оборудования и стен в процедурной, что приводит к увеличению теплового нейтронного потока примерно в 40 × 106 раз по сравнению с обычным фоновым нейтронным потоком. Этот высокий тепловой нейтронный поток обычно приводит к очень высокой частоте случайных ошибок и, как следствие, к сбоям в работе схемы.

Другие причины

Мягкие ошибки также могут быть вызваны случайным шумом или проблемами целостности сигнала, такими как индуктивная или емкостная перекрестные помехи. Однако, как правило, эти источники вносят небольшой вклад в общую частоту возникновения мягких ошибок по сравнению с эффектами радиации. Некоторые тесты показали, что изоляция ячеек памяти DRAM может быть нарушена непреднамеренными побочными эффектами специально сконструированных обращений к соседним ячейкам. Таким образом, доступ к данным, хранящимся в DRAM, приводит к утечке заряда из ячеек памяти и их электрическому взаимодействию, что, в результате высокой плотности ячеек в современной памяти, изменяет содержимое соседних строк памяти, которые фактически не были адресованы при первоначальном доступе. Этот эффект известен как "row hammer" (удар по строке), и он также использовался в некоторых компьютерных эксплойтах для повышения привилегий.

Уменьшение мягких ошибок

Дизайнер может попытаться минимизировать частоту возникновения мягких ошибок за счет продуманной разработки устройства, выбора подходящих полупроводниковых, корпусных и подложечных материалов, а также оптимальной геометрии устройства. Однако, часто это ограничено необходимостью уменьшения размеров устройства и напряжения, увеличения скорости работы и снижения энергопотребления. Чувствительность устройств к сбоям в отрасли описывается стандартом JEDEC JESD 89. Один из методов, используемых для снижения частоты мягких ошибок в цифровых схемах, называется радиационной стойкостью. Он заключается в увеличении емкости в выбранных узлах схемы для повышения ее эффективного значения Qcrit. Это уменьшает диапазон энергий частиц, при которых может произойти изменение логического значения узла. Радиационная стойкость часто достигается за счет увеличения размеров транзисторов, имеющих общую область истока/стока в данном узле. Поскольку дополнительные затраты по площади и энергопотреблению, связанные с радиационной стойкостью, могут быть существенными для проектирования, этот метод часто применяется выборочно к узлам, для которых прогнозируется наибольшая вероятность возникновения мягких ошибок при воздействии. Инструменты и модели, способные предсказывать наиболее уязвимые узлы, являются предметом текущих и прошлых исследований в области мягких ошибок.

Обнаружение мягких ошибок

Проводились исследования, посвященные смягчению последствий мягких ошибок в процессорных и памяти ресурсах с использованием как аппаратных, так и программных методов. Ряд исследовательских работ рассматривал мягкие ошибки, предлагая обнаружение и восстановление ошибок посредством аппаратной избыточной многопоточности. Эти подходы использовали специализированное оборудование для репликации выполнения приложения с целью выявления ошибок в результатах, что приводило к увеличению сложности и стоимости аппаратной реализации, а также к значительным накладным расходам на производительность. Программные решения для обеспечения устойчивости к мягким ошибкам, напротив, отличаются гибкостью и могут быть применены к коммерчески доступным микропроцессорам. Многие работы предлагают репликацию инструкций на уровне компилятора и проверку результатов для обнаружения мягких ошибок.

Исправление ошибок

Дизайнеры могут принять возможность возникновения мягких ошибок и проектировать системы с соответствующим обнаружением и коррекцией ошибок для устойчивого восстановления. Как правило, в конструкции полупроводниковой памяти может использоваться прямой код коррекции ошибок (forward error correction), включающий избыточные данные в каждое слово для создания кода, исправляющего ошибки. Альтернативно, можно использовать коррекцию ошибок с возвратом (roll back error correction), обнаруживая мягкую ошибку с помощью кода обнаружения ошибок, такого как контроль четности, и перезаписывая корректные данные из другого источника. Эта техника часто применяется для кэш-памяти с прямой записью (write through cache memories). Мягкие ошибки в логических схемах иногда обнаруживаются и исправляются с использованием методов отказоустойчивого проектирования (fault tolerant design). Эти методы часто включают использование избыточной схемы или повторное вычисление данных и, как правило, приводят к увеличению площади схемы, снижению производительности и/или увеличению энергопотребления. Для обеспечения очень высокой устойчивости к мягким ошибкам в логических схемах может быть применена концепция тройной модульной избыточности (TMR). В этой технике три идентичные копии схемы параллельно обрабатывают одни и те же данные, а их выходы поступают в логику голосования большинства, возвращая значение, которое встречается как минимум в двух из трех случаев. Таким образом, отказ одной схемы из-за мягкой ошибки игнорируется, предполагая, что две другие схемы работают правильно. Однако на практике немногие разработчики могут позволить себе более чем 200%-ное увеличение площади схемы и энергопотребления, поэтому эта техника обычно применяется выборочно. Другой распространенный подход к исправлению мягких ошибок в логических схемах – временная (или временная) избыточность, при которой одна и та же схема многократно обрабатывает одни и те же данные и сравнивает последующие результаты на предмет согласованности. Однако этот подход часто приводит к снижению производительности, увеличению площади (если используются копии триггеров для хранения данных) и увеличению энергопотребления, хотя он значительно эффективнее по площади, чем модульная избыточность. Традиционно наибольшее внимание в стремлении уменьшить или обойти мягкие ошибки уделялось DRAM, поскольку именно DRAM составляет основную долю площади восприимчивых устройств в настольных и серверных компьютерных системах (см. широкое распространение ECC RAM в серверных компьютерах). Точные данные о восприимчивости DRAM получить сложно, и они значительно варьируются в зависимости от конструкции, технологического процесса и производителя. В DRAM объемом 256 килобит 1980-х годов кластеры из пяти или шести битов могли переключаться из-за одной альфа-частицы. Современные DRAM имеют гораздо меньшие размеры элементов, поэтому отложение аналогичного количества заряда может легко привести к переключению гораздо большего числа битов. Разработке схем обнаружения и коррекции ошибок способствует тот факт, что мягкие ошибки обычно локализованы в очень небольшой области чипа. Обычно поражается только одна ячейка памяти, хотя события с высокой энергией могут вызвать сбой нескольких ячеек. Традиционная компоновка памяти обычно размещает один бит из многих различных корректирующих слов рядом друг с другом на чипе. Таким образом, даже сбой нескольких ячеек приводит лишь к нескольким отдельным однобитным ошибкам в нескольких корректирующих словах, а не к многобитной ошибке в одном корректирующем слове. Следовательно, коду коррекции ошибок достаточно справляться с одной ошибкой в бит в каждом корректирующем слове, чтобы справиться со всеми вероятными мягкими ошибками. Термин «многоячеечный» (multi cell) используется для обозначения сбоев, затрагивающих несколько ячеек памяти, независимо от того, в какие корректирующие слова попадают эти ячейки. Термин «многобитный» (multi bit) используется, когда несколько битов в одном корректирующем слове ошибочны.

Мягкая погрешность

Частота возникновения мягких ошибок (SER) – это показатель того, как часто устройство или система сталкивается с мягкими ошибками или, как прогнозируется, будет сталкиваться с ними. Обычно она выражается в количестве отказов за единицу времени (FIT) или среднем времени наработки на отказ (MTBF). Единица измерения, используемая для количественной оценки отказов за единицу времени, называется FIT и соответствует одной ошибке на миллиард часов работы устройства. MTBF обычно указывается в годах работы устройства; для сравнения, один FIT эквивалентен примерно 1 000 000 000 / (24 × 365,25) = 114 077 периодам между ошибками, что в 114 077 раз больше, чем один год MTBF. Несмотря на то, что MTBF многих электронных систем превышает ожидаемый срок службы схемы, SER все равно может быть неприемлемым для производителя или заказчика. Например, в реальных условиях эксплуатации можно ожидать множества отказов на миллион микросхем из-за мягких ошибок, если система не имеет достаточной защиты от них. Даже отказ нескольких изделий в эксплуатации, особенно катастрофический, может повредить репутации продукта и компании, его разработавшей. Кроме того, в приложениях, критичных к безопасности или стоимости, где цена отказа системы значительно превышает стоимость самой системы, риск отказа из-за мягкой ошибки в 1% за весь срок службы может быть неприемлемо высоким для заказчика. Поэтому при производстве систем крупной серией или требующих чрезвычайно высокой надежности целесообразно проектировать систему с низким значением SER.