Даже работающие на уровне земли заказные специализируемые большие интегральные
схемы (БИС) могут подвергаться воздействиям нейтронов, которые приводят к одиночным
событиям или сбоям (SEE), вызывающим отказы радиоэлектронной аппаратуры (РЭА),
не говоря об условиях эксплуатации в космическом пространстве. Высокоэнергетические
нейтроны появляются в результате столкновений космических галактических лучей с ато-
мами в атмосфере и могут приводить к изменению состояния конфигурационных ячеек
памяти и последовательностной логики, вызывая появление случайных одиночных сбоев
(SEU) или изменяя функцию схемы в комбинаторной логике, а также приводя к случайно-
му одиночному сбою переключения (SET).
Одиночные сбои снижают надежность систем, если не принимать никаких мер для их пре-
дотвращения. В космосе, за пределами защиты магнитосферы Земли, SEU становятся крайне
острой проблемой из-за высоких уровней радиации. SEU могут приводить к серьезным по-
следствиям для космического аппарата, таким как потеря информации, сбои в функционировании или утрата контроля, например ошибочное выполнение прикладной программы.
При непрерывном снижении технологических проектных норм изготовления вызван-
ные воздействием радиации ошибки стали главной проблемой. С уменьшением геометри-
ческих размеров транзистора появляется вероятность того, что одна падающая частица бу-
дет воздействовать не на один, а на несколько транзисторов, создавая множественные сбои
ячеек в массивах памяти (MCU).
В настоящее время как зарубежные компании, так и отечественные производители
выпускают радиационно-стойкие ПЛИС. Например, ПЛИС компании Xilinx серии Virtex-
5QV с конфигурационными ячейками памяти на статическом ОЗУ или структурирован-
ные ПЛИС компании MicroSemi серии RT ProASIC3 с ячейками на основе флэш-памяти
и ПЛИС с токопроводящими перемычками серии RTAX («антифьюз»). Радиационно-
стойкие ПЛИС серии Virtex-5QV обеспечивают высокую защиту от SEU, SET, MBU, за-
щелкиваний (SEL), выдерживают высокие дозы ионизирующего излучения (TID).
Стойкость к одиночным сбоям в радиационно-стойких ПЛИС обеспечивается спе-
циальными схемотехническими методами проектирования (RHBD) и особыми техноло-
гическими приемами (RHBP). RHBD предполагает использование тройного модульного
резервирования (TMR) конфигурации и управляющей логики JTAG-интерфейса, двой-
ных триггеров в конфигурационной памяти, двойных триггеров-защелок и SET-фильтров
на всех входах триггеров конфигурируемых логических блоков, встроенных схем обнару-
жения и исправления ошибок в блочной памяти (ECC, SECDED). Большинство ПЛИС
компании Xilinx поддерживают частичную динамическую реконфигурацию (DPR), кото-
рая выполняется во время работы системы через внутренний порт доступа к конфигура-
ционным битам (ICAP). Динамическая реконфигурация часто используется в различных
областях, таких как мультимедийные средства информации, авионика, аэрокосмическая
промышленность, а также в других интеллектуальных системах для изменения их функ-
циональности и локализации сбоев. Процесс реконфигурации – один из наиболее важ-
ных этапов исключения скопления сбоев в ячейках статического ОЗУ, которые должны
быть устранены в течение определенного времени, требуемого для восстановления. Для
поддержки радиационно-стойких ПЛИС компанией Xilinx разработана программно-
аппаратная платформа для оценки устойчивости конфигурационной памяти ПЛИС с soft-
процессорами к SEU и SET-методом внесения ошибок (Fault Injector).
Имеющиеся в продаже зарубежные COTS БИС, в т. ч. и ПЛИС, в последние годы ши-
роко используются в РЭА с длительным сроком активного существования. Использова-
ние COTS БИС позволяет создавать современное высокотехнологическое РЭА, т. к. они
содержат самые инновационные решения при низкой стоимости и наличии в свободной
продаже. COTS ПЛИС предоставляют возможность разработки специализированных ми-
кропроцессорных систем в составе РЭА.
Однако COTS ПЛИС и графические процессоры специально не разработаны для обе-
спечения стойкости к воздействию радиации. Для проектов, реализуемых в базисе COTS
ПЛИС, необходимо использовать отказоустойчивые методы разработки: программно-
реализуемые методы обеспечения отказоустойчивости (SWIFT), в частности селективное
программно-реализуемое отказоустойчивое восстановление (S-SWIFT-R), гибридные мето-
ды с программным резервированием с той или иной аппаратной поддержкой, разнообразие
резервирования проектов (DDR), коды обнаружения и исправления ошибок (ECC) и др.
Авторы перевода надеются, что сборник научных трудов под редакцией Ф. Кастенш-
мидт и П. Реха «ПЛИС и параллельные архитектуры для применения в аэрокосмической
области. Программные ошибки и отказоустойчивое проектирование» будет полезен
не только инженерно-техническим работникам, занимающимся применением серийно
выпускаемых ПЛИС в авиации, космонавтике, в приборостроении для транспорта и дру-
гих критических важных областях народного хозяйства, но и магистрантам, обучающимся
по направлению подготовки 11.04.04 «Электроника и наноэлектроника», а также аспиран-
там, проходящим обучение по направлению подготовки 11.06.01 «Электроника, радиотех-
ника и системы связи».
Часть I. Введение
Глава 1. Воздействие радиации и отказоустойчивые методы для ПЛИС и графических процессоров
Фернанда Кастеншмидт и Паоло Рех
Краткое содержание. В этой книге приводится понятие устранимых ошибок, возникающих
в ПЛИС типа ППВМ ( FPGA — Field Programmable Gate Array) и графических процессорах.
В главах рассматриваются радиационные эффекты в ПЛИС, отказоустойчивые методы для
ПЛИС, применение серийно выпускаемых ПЛИС в авиации и космонавтике, экспери-
ментальные данные о воздействии радиации на ПЛИС, встроенные в ПЛИС процессоры
под воздействием радиации и внесение ошибок в ПЛИС. Поскольку специализированная
архитектура параллельной обработки, как в случае графического процессора, стала более
востребованной в авиации и космонавтике благодаря высоким вычислительным возмож-
ностям, также приводятся результаты анализа поведения графического процессора под
воздействием радиации.
1.1. Введение
Программируемые пользователем вентильные матрицы (ППВМ) весьма привлекательны
для авиации и космонавтики, а также для многих наземных областей применения, в кото-
рых необходим высокий уровень надежности, таких как автомобили, банковские серверы,
перерабатывающие предприятия и т. п. Большой объем ресурсов, доступный в програм-
мируемых логических устройствах, может, например, увеличить возможности бортовых
компьютеров на спутниках и в автомобильной промышленности. Поскольку ПЛИС может конфигурироваться/программироваться на месте эксплуатации, исправление проектных
новые области применения и новые функции могут быть внесены уже после запуска спут-
ника или корректироваться при наличии электромагнитных помех. Современные ПЛИС
как системы на кристале (СнК, SoC — System-on-Chip) содержат различные программные
и аппаратные процессорные ядра, встроенные цифровые сигнальные процессоры, блоки
памяти и большое число конфигурируемых логических блоков, которые можно настраи-
вать индивидуально для реализации проектных решений пользователя.
Графические процессоры ( GPU — Graphics Processing Units) традиционно используют-
ся для ускорения получения графических изображений в персональных компьютерах или
портативных устройствах. В мультимедийных приложениях надежность не имеет большого
значения, т. к. вероятность сбоя слишком низкая, а имеющиеся ошибки вполне «терпи-
мы», поскольку глаз человека не может их различить. Тем не менее последние графические
процессоры стали применяться в тех областях, в которых надежность имеет достаточно
большое значение. Благодаря их эффективности, вычислительным возможностям и низ-
кому потреблению электроэнергии по сравнению с традиционными вычислительными
процессорами, эти последние разработки графических процессоров фактически являют-
ся частью проектов в авиации и космонавтике. Возможности параллельных вычислений
графических процессоров могут использоваться для сжатия изображений на спутниках,
чтобы ограничить полосу пропускания, необходимую для их отправки на Землю. Кроме
того, графические процессоры применяются в современных системах содействия управ-
лению транспортным средством ( ADAS — Advanced Driver Assistance Systems) и помогают
водителям избегать аварийных ситуаций. И наконец, графические процессоры широко ис-
пользуются в качестве ускорителей в высокопроизводительных вычислительных центрах
( HPC — High Performance Computing сenters). Крупные HPC-центры имеют тысячи графи-
ческих процессоров, которые работают параллельно, значительно повышая вероятность
появления искажений по крайней мере в одном графическом процессоре под действием
радиации.
К сожалению, как ПЛИС, так и графические процессоры оказались очень чувствитель-
ными к радиации, главным образом потому, что они изготавливаются по нанометровым
технологическим процессам. Важно измерить экспериментально частоту появления устра-
нимых ошибок доступных ресурсов, а также частоту появления ошибок на выходе опре-
деленных приложений, чтобы оценить, удовлетворяют ли они требованиям надежности
проекта. Экспериментальное снятие характеристик используемых программируемых ком-
понент и графического процессора является обязательным условием для подтверждения
возможности их применения при кратковременных отказах. Методика испытания и снятия
характеристик ПЛИС и графических процессоров при воздействии радиации необходима
для надлежащего выбора и оценки отказоустойчивых методов, чтобы сделать эти компо-
ненты более стойкими к воздействию радиации. Радиационные эксперименты, несмотря
на их сложность и стоимость, являются единственным известным и сертифицированным
способом для точного измерения вероятности отказа в современных интегральных схемах.
1.2. Радиационные эффекты
Интегральные схемы, работающие в среде, находящейся под воздействием радиации, чув-
ствительны к кратковременным сбоям, вызванным взаимодействием ионизирующих ча-
стиц с кремнием. Частица считается ионизирующей, если она способна разделить атом
на ионы. Ионизирующее излучение вызывает отказы в электронных устройствах, посколь-
ку наведенный заряд может возмущать состояние транзистора. Этот заряд может быть на-
веден непосредственно (если ионизирующая частица заряжена) или опосредованно. Уда-
ры нейтронов, например, создают вторичные частицы (альфа-частицы, ионы, протоны), которые имеют заряд и могут возмущать транзистор. Взаимодействие ионизирующих ча-
стиц с транзисторами может вызвать кратковременные и постоянные сбои, в зависимости
от положения и количества переданного заряда (напрямую или опосредованно) в материал
в результате столкновений частиц с кремнием.
Эффекты, вызванные воздействием ионизирующего излучения, носящие название
одиночных событий ( SEE — Single Event Eff ects), могут приводить к восстанавливаемым
(кратковременным) или постоянным (невосстанавливаемым) отказам [1]. Когда SEE про-
является кратковременно, его принято называть устранимой ошибкой (или однократным
восстанавливаемым отказом), поскольку устройство не получило необратимого повреж-
дения. Примером устранимой ошибки является одиночный сбой ячейки памяти ( SEU —
Single Event Upset) и случайный одиночный сбой переключения выхода логического эле-
мента ( SET — Single Event Transient). Примером SEU является инвертирование разрядов,
которые возникают, когда при ударе ионизирующих частиц по транзистору ячейки памяти
наводится заряд, достаточный для изменения состояния на противоположное. Эта ячейка
памяти по-прежнему работает надлежащим образом, выполняя операции чтения и запи-
си, но хранившаяся в ней информация повреждена. При ударе ионизирующей частицы
по логическому элементу создается пилообразный скачок напряжения, который при за-
щелкивании приводит к SET. И опять же логический элемент не поврежден, поскольку но-
вая операция в конечном счете будет выполнена правильно. Следует отметить, что понятие
устранимой ошибки не уменьшает серьезности вызванных радиацией ошибок.
В противоположность этому кратковременный и стохастический характер устранимых
ошибок приводит к чрезвычайной сложности их идентификации и исправления. Посто-
янная неисправность в ячейке памяти означает, что эту ячейку можно отметить как не-
используемую, тогда как вероятность появления SEU делает всю матрицу ячеек памяти
потенциально неисправной. Следует отметить, что с уменьшением размеров транзистора
появляется вероятность того, что одна падающая частица будет воздействовать не на один,
а на несколько транзисторов, создавая множественные сбои ячеек ( MCU — Multiple Cell
Upset) в массивах памяти. Если поврежденные биты принадлежат одному слову памяти,
MCU называют многобитовыми сбоями ( MBU — Multiple Bit Upset). MBU особенно кри-
тичны, поскольку они разрушают эффективность кодирования с исправлением ошибок
(коды коррекции ошибок) ( ECC — Error Correcting Codes). На рис. 1.1 приведены примеры
единичных, многократных и случайных сбоев переключения в интегральных схемах.
Ионизирующее излучение может также вызывать постоянные отказы, такие как оди-
ночное событие радиационного защелкивания ( SEL — Single Event Latchup), одиночный
пробой подзатворного диэлектрика мощного МОП-транзистора ( SEGR — Single Event
Gate Rupture) или единичный пробой сток/истоковых областей МОП-транзистора ( SEB —
Single Event Burnout). И наконец, накопление воздействий частиц приводит к cуммарной дозе ионизирующего излучения ( TID — Total Ionizing Dose), которая проявляется в ухуд-
шении рабочих характеристик транзисторов, поскольку изменяет пороговое напряжение
и ток утечки.
Радиационное окружение состоит из различных частиц, генерируемых солнечной
и звездной активностью [2]. Космическое пространство наполнено галактическими кос-
мическими лучами, которые являются потоком тяжелых ионов, создаваемых взрывами
сверхновых звезд или столкновениями небесных тел. Высвобожденные в результате атомы,
блуждающие во Вселенной, теряют протоны или электроны, тем самым приобретая заряд.
В результате взаимодействия с магнитными полями планет и звезд эти ионы приобретают
ускорение, достигая энергий порядка гигаэлектрон-вольт (ГэВ). Солнце создает потоки
протонов и электронов, которые достигают Земли с низкими энергиями, поскольку у них
не было достаточного времени для ускорения.
Эти частицы можно разделить на два основных типа: 1) частицы с высокой энергией,
такие как нейтроны, электроны, протоны и тяжелые ионы, и 2) электромагнитное излуче-
ние (фотоны), к которому относятся рентгеновское излучение, гамма-лучи и ультрафиоле-
товое (УФ) излучение. Основными источниками частиц с высокой энергией, вносящими
свой вклад в радиационные эффекты, являются протоны и электроны, захваченные пояса-
ми Ван Аллена, тяжелые ионы, захваченные в ионосфере, галактические космические лучи
и солнечные вспышки. Заряженные частицы взаимодействуют с атомами кремния, вызы-
вая возбуждение электронов и ионизацию атомов.
На уровне Земли наиболее часто вызывают сбои нейтроны. Нейтроны появляются
в результате взаимодействий в верхних слоях атмосферы космических ионов с молекула-
ми кислорода и азота. Следует отметить, что если солнечный ветер оказывается захвачен-
ным в поясах Ван Аллена из-за низкой энергии образующих его частиц, то галактические
космические лучи обладают достаточно высокой энергией, чтобы пройти через эти пояса
и проникнуть в верхние слои земной атмосферы. Поток нейтронов сильно зависит от таких
ключевых параметров, как высота, широта и долгота. В этом потоке есть нейтроны с вы-
сокой энергией, которые взаимодействуют с материалом, создавая свободные электронно-
дырочные пары, и нейтроны с низкой энергией. Эти нейтроны взаимодействуют с содержа-
щимся в полупроводниковом материале бором, создавая другие частицы. Альфа-частицы
являются вторичными частицами, которые возникают в результате взаимодействия с ра-
диоактивными примесями, содержащимися в самом устройстве или в материале корпуса,
и создают наибольшие проблемы. Выбор используемых материалов состоит в сведении
к минимуму эмиссии альфа-частиц. Однако это не может устранить проблему полностью.
Поскольку высокоэнергетическая частица, проходя сквозь представляющий интерес
материал, например через отрицательно смещенный p-n-переход, вдоль всего пути следо-
вания, теряет при этом свою энергию, что подробно описывается в [3]. Эта энергия рассчи-
тывается как линейная передача энергии ( LET — Linear Energy Transfer) и определяется как потеря энергии частицы вдоль пройденного пути, нормированная на плотность материала.
Она обычно выражается в МэВ ⋅ см2/мг. Общее число зарядов пропорционально LET до-
летающих частиц. В зависимости от способа изготовления и электрических характеристик
каждого чувствительного элемента, таких как сопротивление и емкость, создаются крат-
ковременные скачки напряжения различной амплитуды и длительности.
1.3. Устранимые ошибки в ПЛИС
Программируемые пользователем вентильные матрицы (ППВМ) являются реконфигу-
рируемыми интегральными схемами на основе регулярных структур с высокой плотно-
стью логических элементов, которые настраиваются конечным пользователем под раз-
личные проектные решения. Архитектура ПЛИС основана на матрице логических блоков
мутаторов используются несколько различных технологий программирования. В настоя-
щее время используются технологии программирования коммутаторов трех типов: стати-
ческое ОЗУ (оперативное запоминающее устройство), в котором роль программируемого
коммутатора выполняет проходной транзистор или мультиплексор, управляемый состоя-
нием бита статического ОЗУ (ПЛИС со статическим ОЗУ ( SRAM — Static Random Access
Memory)); проводящий мостик (antifuse) — электрически программируемый коммутатор
образует низкоомный канал между двумя металлическими слоями (ПЛИС на основе про-
водящей перемычки); стираемое программируемое постоянное запоминающее устройство
(СППЗУ, EPROM — Erasable Programmable Read-Only Memory) — электрически стираемое
перепрограммируемое ПЗУ (ЭСППЗУ, EEPROM — Electrically Erasable Programmable Read-
Only Memory) или флэш-ячейка (FLASH), когда коммутатор представляет собой транзистор
с плавающим затвором, который можно отключить, подав заряд на плавающий затвор.
Настройки на основе статического ОЗУ являются энергозависимыми. Это означает,
что ПЛИС на основе статического ОЗУ можно перепрограммировать на месте их работы
столько раз, сколько это необходимо, и что они теряют содержащуюся в них информацию
при отключении запоминающего устройства от электропитания. Решения с проводящими
перемычками являются энергонезависимыми, поэтому сохраняют конфигурацию даже при
отключенном электропитании и могут программироваться только один раз. Каждая ПЛИС
имеет определенную архитектуру. Компании, разрабатывающие программируемую логику,
такие как Xilinx, MicroSemi, Aerofl ex (имеющая лицензию на ПЛИС компании Quicklogic),
Atmel и Honeywell (имеющая лицензию на ПЛИС компании Atmel), предлагают стойкие
к воздействию радиации семейства ПЛИС. Каждая компания применяет разные методы
подавления сбоев с учетом характеристик архитектуры.
1.3.1. Сбои, вызванные одиночным воздействием на ПЛИС
со статическим ОЗУ
ПЛИС со статическим ОЗУ состоят из матрицы конфигурируемых логических блоков
(КЛБ, CLB — Confi gurable Logic Blocks), сложной структуры трассировочных ресурсов,
матрицы встроенных элементов памяти (блоков ОЗУ, RAM — Random Access Memory), ма-
трицы блоков цифровой обработки сигналов (ЦОС-блоки, DSP — Digital Signal Processing)
и набора управляющей и контролирующей логики. Блоки КЛБ состоят из таблиц преоб-
разований ( LUT — Look-up Table), которые обеспечивают выполнение комбинационной
логики, и D-триггеров, тактируемых фронтом синхросигнала ( DFF — Flip-Flops), отве-
чающих за последовательностную логику. Структура трассировочных ресурсов может быть
очень сложной и состоять из миллионов предустановленных соединений, которые могут
настраиваться с помощью мультиплексоров и коммутаторов для получения требуемой
маршрутизации.
Конфигурация всех КЛБ, маршрутизации, блоков ОЗУ, ЦОС-блоков и модулей ввода-
вывода задается с помощью установки битов конфигурационной памяти, данный набор би-
тов носит название битового потока или прошивки. В зависимости от размера устройства
ПЛИС битовый поток может содержать миллионы бит. Ячейки памяти, которые хранят би-
товый поток внутри ПЛИС, образуют ячейки памяти статического ОЗУ, поэтому их можно
перепрограммировать и они энергозависимы. Возникновение SEE в конфигурационной
памяти ПЛИС на основе статического ОЗУ может спровоцировать инвертирование битов.
Такое инвертирование битов может изменить маршрутизацию, конфигурацию LUT или
триггера в КЛБ и привести к катастрофическим последствиям в проекте, поскольку SEE
может изменить его функциональность.
SEE в битах конфигурационной памяти ПЛИС на основе статического ОЗУ при-
водит к постоянному эффекту, и его можно устранить только перепрограммированием
ПЛИС [4]. В комбинационной логике последствия SEE связаны с постоянным сбоем
(ноль или единица) в одной или нескольких ячейках конфигурации LUT. На рис. 1.2 мож-
но видеть примеры возникновения SEU в конфигурационных ячейках LUT и в ячейке,
контролирующей соединения маршрутизации. SEE в архитектуре маршрутизации может
подключать или отключать межсоединение в матрице. Это также относится к постоян-
ному эффекту. Результатом такого воздействия может быть изменение электрической
схемы, что приводит к изменению логики работы схемы, или появление короткого за-
мыкания в комбинационной логике, интерпретируемой ПЛИС. Может пройти большое
количество тактов синхросигнала, прежде чем постоянная ошибка такого рода будет вы-
явлена и запустятся необходимые восстановительные процедуры по загрузке неповреж-
денного битового потока. За это время ошибка может распространяться в оставшуюся
часть проекта.
Инвертирование битов также может происходить в триггерах КЛБ, используемых для
реализации последовательностной логики пользователя. В этом случае инвертирование
бита имеет кратковременный эффект и последующая загрузка триггера устранит ее.
1.3.2. Сбои, вызванные одиночным воздействием на ПЛИС
на основе флэш-памяти
ПЛИС на основе флэш-памяти имеют перестраиваемую конфигурацию матрицы, со-
стоящую из логических ячеек ПЛИС ( VersaTiles) и трассировочных ресурсов, которые
программируются включением или отключением коммутаторов (конфигурационных ключей), построенных на базе транзисторов с плавающим затвором ( FG — Floating Gate)
(n-канальный МОП-транзистор с многоуровневым затвором) [5]. Цепь такого коммута-
тора состоит из двух n-канальных МОП-транзисторов: 1) считывающего транзистора для
программирования плавающего затвора и считывания тока во время измерения порого-
вого напряжения и 2) переключающего транзистора для включения и отключения линии
передачи данных в ПЛИС (рис. 1.3). Эти два транзистора совместно используют одни и те
же управляющий и плавающий затворы. Пороговое напряжение определяется накоп-
ленным зарядом в плавающем затворе. Рис. 1.3 иллюстрирует логические ячейки ПЛИС
(VersaTiles), используемые для построения типовых логических элементов. VersaTiles под-
ключаются по четырехуровневой иерархии трассировочных ресурсов: сверхбыстрые ло-
кальные ресурсы, эффективные ресурсы маршрутизации для длинных линий, высокоско-
ростные ресурсы маршрутизации для очень длинных линий, высокопроизводительные
сети VersaNet.
Каждая ячейка VersaTile может реализовать любую трехвходовую логическую функ-
цию, что эквивалентно трехвходовой таблице преобразования (3-LUT). Но важно за-
метить, что электрическая реализация VersaTile полностью отличается от электрической
реализации таблицы преобразования (LUT — Lookup Table). Поэтому VersaTiles при различных воздействия могут иметь отличное электрическое поведение по сравнению
с трехвходовыми LUT. VersaTiles также могут реализовать триггер-защелку с очисткой
и сбросом или D-триггер с очисткой или сбросом или включить D-триггер с очисткой
и сбросом посредством транзисторной логики и линий обратной связи внутри логической
ячейки VersaTile. Для каждой конфигурации ячейки VersaTile число переключателей пла-
вающего затвора и транзисторов в критическом пути меняется. Случайные сбои переклю-
чения ( SET — Single Event Transient) могут воздействовать на область стока транзистора
в отключенном состоянии, как это представлено на рис. 1.3, вызывая кратковременный
импульс в конфигурационных коммутаторах, или воздействовать на чувствительные об-
ласти транзисторов в ячейках VersaTile, создавая импульсные помехи или инвертирование
битов в зависимости от конфигурации данной ячейки (рис. 1.4). В главе 11 подробно рас-
сматривается оценка ошибок, вызванных радиацией, в ПЛИС, созданных по технологии
65 нм на основе флэш-памяти. В главе 14 приводится обзор влияния воздействия нейтро-
нов на ПЛИС по флэш-технологии, предназначенной для аналого-цифровой обработки
сигналов.
1.3.3. Сбои, вызванные одиночным воздействием на ПЛИС
с токопроводящими перемычками
ПЛИС с токопроводящими перемычками основаны на постоянной матрице, состоящей
из комбинационных C-ячеек и последовательностных R-ячеек, окруженных регулярны-
ми трассировочными каналами. Все варианты трассировки и конфигурации C- и R-ячеек
осуществляются расплавлением необходимых токопроводящих перемычек (программи-
руемых переключателей). Результаты наземных радиационных испытаний показали, что
программируемые переключатели на основе технологий ONO (Oxide – Nitride – Oxide, ок-
сид – нитрид – оксид) и MIM (Metal – Insulator – Metal, металл – изолятор – металл) явля-
ются стойкими к воздействию ионизации и накопленной дозы облучения [6]. Поэтому на-
страиваемая пользователем трассировка не чувствительна к SEU, только комбинационная
логика и триггеры, используемые для описания пользовательской последовательностной
логики, оказываются чувствительными к SEE.
Другим хорошо известным вариантом ПЛИС на основе расплавляемых токопрово-
дящих перемычек являются ППВМ компаний Aerofl ex и QuickLogic. Их архитектура со-
ставлена из матрицы конфигурируемых логических ячеек, используемых для реализации
комбинационной логики, и триггеров, которые окружены трассировочной структурой.
Программируемые переключатели, получившие название ViaLink, применяются для на-
стройки всех вариантов пользовательских конфигураций.
Чтобы подытожить воздействия SEU и SET на ПЛИС, в табл. 1.1 показаны воспри-
имчивые части архитектуры и разделение сбоев на кратковременные и продолжительные,
когда для устранения сбоя требуется реконфигурация.
1.4. Устранимые ошибки в графических процессорах
Модули графических процессоров представляют собой сложные системы параллельных
вычислений, которые используют большие структуры памяти, такие как кэш второго
и первого уровней (L2 и L1) или регистровые файлы, высокоэффективные арифметическо-
логические устройства (АЛУ, ALU — Arithmetic Logic Units), а также планировщики и дис-
петчеры задач.
Радиация может вызывать в структурах памяти графического процессора как оди-
ночные обратимые сбои, так и множественные сбои. Если радиация повреждает регистр,
то процесс, использующий этот регистр для вычислений, вероятнее всего, выдаст невер-
ный результат. Специфика параллельных вычислений приводит к тому, что ошибки в кэш-
памяти графического процессора более существенны, чем в традиционных ЦПУ. Фак-
тически кэш-память первого уровня (L1) используется совместно всеми параллельными
процессами вычислений в потоковом мультипроцессоре ( SM — Steaming Multiprocessor),
тогда как кэш L2 распределяется между всеми SM. Поэтому ошибка в кэше L1 может,
в наиболее неблагоприятном случае, распространиться на все выполняемые текущим SM
параллельные процессы. Аналогичным образом ошибка в кэше L2 может повлиять на аб-
солютно все процессы, выполняемые графическим процессором [7].
Соударение падающей частицы с вентилем может привести к случайному сбою пере-
ключения. Что касается SEU, то его серьезность и общий суммарный эффект SET зависят
от области соударения. Если SET воздействует на вентиль внутри отдельного ядра, то поток
операций, выполняемых этим ядром, вероятно, даст на выходе единичный сбой. Однако
если SET приводит к сбою планировщика или диспетчера параллельных вычислений, это
может повлиять на вычисления нескольких процессов, а также привести к аварийному за-
вершению приложения или зависанию системы [8].
Чтобы иметь всестороннюю оценку чувствительности графического процессора, не-
достаточно измерить чувствительность к воздействию радиации отдельных ресурсов, та-
ких как модули памяти или логические вентили. Необходимо также проанализировать,
как эти ресурсы используются в вычислениях. Для этого можно провести радиационные
эксперименты на репрезентативном наборе приложений, чтобы иметь достаточно данных
для обобщения на остальные алгоритмы. Альтернативно этому можно вычислить коэффи-
циент уязвимости архитектуры ( AVF — Architectural Vulnerability Factor), т. e. вероятность
выдачи поврежденным ресурсом ошибки в выходных данных, как в [9]. В главе 20 подроб-
но рассматриваются возможные радиационные воздействия на графические процессоры
и показывается возможный путь оценки поведения графического процессора под воздей-
ствием радиации.
1.5. Отказоустойчивые методы
Отказоустойчивость определяется как набор методов по обеспечению рабочего режима,
при котором выполняется системная функция, несмотря на наличие (ограниченного набо-
ра) сбоев. Проблема отказоустойчивости полупроводниковых устройств обрела важность
после того, как несколько лет назад начали возникать сбои космической аппаратуры. С тех
пор интерес к изучению отказоустойчивых методов для поддержания работоспособности
интегральных схем (ИС, IC — Integrated Circuits) в таких неблагоприятных условиях окру-
жающей среды стал расти, ведомый всеми возможными областями применения стойких
к воздействию радиации ИС, как, например, полеты в космосе, спутниковые системы,
высокоэнергетические эксперименты в физике и т. п. Системы космических кораблей включают множество разнообразных аналоговых и цифровых компонентов, которые по-
тенциально чувствительны к воздействию радиации, и поэтому для обеспечения их надеж-
ности необходимо использовать отказоустойчивые методы.
1.5.1. Отказоустойчивые методы для ПЛИС
Различные отказоустойчивые методы применимы для ПЛИС в соответствии с типом тех-
нологии конфигурирования, архитектурой и заданной средой эксплуатации. Эти методы
могут быть реализованы пользователем с применением высокоуровневого языка описания
аппаратных средств ( HDL — Hardware Description Language), прежде чем проект будет син-
тезирован в ПЛИС. В этой книге авторы преимущественно рассматривают методы, которые
могут применяться самим пользователем при проектировании с помощью языка HDL.
Главные методы основаны на одном из двух принципов: пространственной или вре-
менной избыточности (резервировании) [10]. Пространственная избыточность сводится
к n-кратному дублированию конкретного модуля n идентичными модулями, все выходные
сигналы которых направляются в мажоритарную схему голосования. Обычно n является
нечетным числом. Схема голосования определяет правильный выходной сигнал по боль-
шинству равных выходных сигналов. Наиболее распространенным является вариант
n-модульного резервирования ( nMR — n-modular redundancy) с n, равным 3, получивший
название тройного модульного резервирования ( TMR — Triple Modular Redundancy). В этом
случае схема голосования позволяет выбрать два одинаковых значения из трех, которые
не содержат ошибок. TMR может использоваться различным образом: с крупноблочной
реализацией или разбиением на небольшие блоки, с добавлением дополнительных схем
мажоритарного голосования. Существует локальный вариант TMR, когда три раза дубли-
руются лишь триггеры, и глобальный TMR, также известный как XTMR, когда три раза
дублируется вся комбинационная и последовательностная логика. Возможно и использо-
вание разнообразного тройного модульного резервирования Diverse TMR , в этом случае
каждый дублирующий модуль имеет архитектуру, отличную от остальных.
При разработке маршрутизации можно выбирать различные методы для увеличения
или уменьшения коэффициента разветвления, времени задержки и числа соединений, ко-
торые могут иметь различное влияние на чувствительность к SEE. В дополнение для ПЛИС
со статическим ОЗУ реконфигурация является необходимым средством устранения сбоев
в прошивке. Полное непрерывное восстановление конфигурации вслепую носит название
очистки ( scrubbing), которая отвечает за полное восстановление конфигурации ПЛИС, ис-
пользуя эталонный битовый поток ( golden bitstream). Также можно использовать частичное
реконфигурирование.
Для встроенных процессоров применяются разные методы смягчения чувствительно-
сти к сбоям, основанные на программной или процессорной избыточности, как, напри-
мер, жесткая конфигурация ( lock-step) и повторные вычисления. Программные методы
обеспечения отказоустойчивости используют информационную избыточность, анализ по-
тока команд управления и сравнения для обнаружения ошибок во время выполнения про-
граммы. Для этой цели в программных методах применяют дополнительные инструкции
в коде программы либо для повторного выполнения команд, либо для сохранения и сверки
подходящей информации в элементах памяти. Недавно было реализовано программное
средство, которое позволяет автоматически вставлять такие инструкции в код C или в ас-
семблер, значительно сокращая затраты на повышение отказоустойчивости.
При временной избыточности в течение определенного времени два или три раза за-
хватывается одна и та же величина, чтобы путем голосования избежать кратковременного
сбоя. Полученные значения сдвигаются на время задержки [11]. Смысл этого подхода со-
стоит в том, чтобы определить два не содержащих сбоя значения из трех для игнорирова-
ния ошибки.
Каждый из этих методов позволяет защитить от SEU или SET либо от того и другого,
как это показано в табл. 1.2, и они будут рассмотрены в отдельных главах этой книги.
Очень часто системы на кристалле (СнК), реализованные в ПЛИС, используют на-
бор уже упоминавшихся методов устранения сбоев. В главах 2 и 3 представлены проекты
на основе ПЛИС как СнК со статическим ОЗУ со встроенным процессорным ядром для
спутниковых приложений, в которых используются некоторые отказоустойчивые методы.
В главе 6 подробно описывается обнаружение отказов, их изоляция и восстановле-
ние структуры с использованием преимуществ, предоставляемых ресурсами, доступны-
ми в гетерогенных системах. В главе 7 предлагается новый метод очистки для конфигура-
ционных ячеек памяти ПЛИС. В главе 8 оцениваются требования к электропитанию для
n-модульной избыточности, а в главе 9 представлено отказоустойчивое ядро управления
для динамической частичной реконфигурации ПЛИС. В главе 12 предлагается исполь-
зовать метод C-Slow с восстановлением синхронизации для обеспечения безопасности
критически важных приложений. В главе 13 предлагается более эффективное исполнение
функции обнаружения и исправления ошибок в стойких к воздействию радиации ПЛИС.
В главе 15 приводятся методы повышения отказоустойчивости для встроенных процессо-
ров, а в главах 16 и 19 — метод повышения отказоустойчивости для soft-процессоров. В главах 17 и 18 изучается, как уменьшить дополнительные затраты ресурсов для распространенных методов повышения отказоустойчивости электрических схем и процессоров.
1.5.2. Отказоустойчивые методы для графических процессоров
Поскольку графические процессоры изначально предназначались для ускорения графи-
ческой визуализации, исследования их надежности находятся в зачаточном состоянии.
Большинство из доступных графических процессоров не предполагают каких-либо ва-
риантов обеспечения надежности, отдавая предпочтение производительности, а не отка-
зоустойчивости. И только недавно в графические процессоры, производимые для рынка
высокопроизводительных средств вычисления, стали включать коды исправления ошибок
в основных структурах памяти (в L1 и L2 кэш-памяти и во внутренних регистрах памя-
ти). Имеющаяся в наличии система ECC исправляет одиночные и обнаруживает двойные
ошибки ( SECDED — Single Error Correction Double Error Detection). С ее помощью можно
исправлять SEU и обнаруживать MBU. Экспериментально было установлено, что около
30 % вызванных воздействием радиации сбоев в структурах памяти современных графиче-
ских процессоров относятся к категории множественных сбоев. Благодаря использованию чередования памяти (т. e. логические биты, принадлежащие одному и тому же слову, физи-
чески разделены) только 5 % ошибок являются множественными, воздействущими на биты
одного и того же слова. Кроме того, MBU с более чем двумя искаженными битами экспери-
ментально никогда не наблюдались. Таким образом, SECDED ECC представляется доста-
точной для того, чтобы гарантировать высокую надежность. Несмотря на это, логические
ресурсы вычислительных структур и планировщиков заданий остаются без защиты, таким
образом, внутренние триггеры и очереди не охвачены системой ЕСС. Поэтому ECC может
не гарантировать высокий уровень надежности [12].
Недавно были предложены некоторые программные методы повышения отказо-
устойчивости для параллельных кодов. Основная идея заключается в дублировании па-
раллельных задач для идентификации сбоев или в добавлении процедур кодирования
и декодирования для обнаружения и в конечном счете устранения сбоев. Дублирование
со сравнением ( DWC — Duplication With Comparison) очень легко описывается в графи-
ческом процессоре, поскольку основной принцип программирования этого устройства —
это параллелизм [12]. Если даже DWC и представляется обещающим и эффективным для
обнаружения ошибок методом, он вносит отнюдь не пренебрежимо малые вычислитель-
ные издержки. Это приводит к тому, что избыточность может оказаться неприемлемой
для высокопроизводительных вычислительных систем или встроенных систем со строги-
ми ограничениями энергопотребления. Важно также вдумчиво дублировать параллель-
ные процессы, избегая выполнения потоков, принадлежащих одному и тому же домену,
на одном потоковом мультипроцессоре, т. к. эти потоки будут совместно использовать
одну и ту же кэш-память. Ошибка в совместно используемой области затем распростра-
нится в обе копии, оставаясь при этом необнаруженной. Другим принципом обеспечения
отказоустойчивости, применяемым в параллельных кодах, является алгоритмическая от-
казоустойчивость ( ABFT — Algorithm Based Fault Tolerance). ABFT основана на кодирова-
нии входных данных, модификации алгоритма для работы с закодированными данными
и, наконец, декодировании выходных данных с обнаружением и исправлением ошибок.
ABFT алгоритмозависима и требует подробного анализа алгоритма и серьезного услож-
нения исходного кода для реализации. На данный момент единственными алгоритмами,
для которых возможно применение принципа ABFT, являются алгоритмы перемножения
матриц и быстрое преобразование Фурье [7, 13]. В главе 20 приводится обзор принципов
обеспечения отказоустойчивости, применяемых для работы современных параллельных
процессоров.
1.6. Определение радиационной чувствительности
ПЛИС и графических процессоров
1.6.1. Внесение ошибок
При работе с ПЛИС важным этапом разработки является проверка работы методов от-
казоустойчивости, которая обычно осуществляется внесением ошибок. Первоначальный
битовый поток, используемый для конфигурации ПЛИС, может быть изменен с помощью
электрической схемы или инструментов в ПК путем инвертирования разрядов битового по-
тока по одному за раз. Это инвертирование имитирует SEU в ячейках конфигурационной
памяти. Результаты испытания схемы можно непрерывно контролировать (DUT — Design
Under Test) для анализа влияния внесенной неисправности на ее работу. Если была обна-
ружена ошибка, это означает, что используемый метод обеспечения отказоустойчивости
не надежен для устранения этого конкретного сбоя (SEU) в заданном конфигурационном
бите памяти Можно вносить неисправности во все конфигурационные биты для анализа наиболее
критичных блоков проекта [14]. Это может помочь конструкторам на ранних этапах раз-
работки выбрать наиболее подходящий принцип отказоустойчивости еще до проведения
наземных радиационных испытаний. Весь процесс внесения ошибок может занять от не-
скольких часов до нескольких дней, в зависимости от количества инвертируемых битов
и подключения к схеме управления внесением неисправностей. Когда вся система (управ-
ление внесением неисправностей + испытуемая система + эталонная прошивка) реали-
зована на аппаратном уровне (на плате), без связи с ПК, этот процесс ускоряется на по-
рядки.
В главах 4 и 5 представлены некоторые методы для внесения ошибок в ПЛИС со стати-
ческим ОЗУ. В главе 10 представлена платформа внесения ошибок, которая воспроизводит
множественные сбои и накопление сбоев на основе реальных радиационных экспериментов.
Однако процесс внесения ошибок в графических процессорах имеет некоторые огра-
ничения. Только малая часть ресурсов графического процессора доступна пользователю,
и для того, чтобы получить к ним доступ в целях внесения неисправностей, необходимо
изменить ход выполнения алгоритма, что влечет за собой элементы неестественного пове-
дения. Для графического процессора существует одна утилита внесения неисправностей —
GPU-Qin [15], которая позволяет пользователю вносить неисправности только в конкрет-
ные значения.
1.6.2. Методы радиационных испытаний по прогнозу
и измерениям одиночных сбоев в ПЛИС
и графических процессорах
Тестирование ПЛИС под воздействием радиации зависит от протокола испытаний, раз-
работанного для каждого типа ПЛИС и архитектуры проекта. В этом разделе подробно
рассмотрим радиационные испытания ПЛИС со статическим ОЗУ. Существует два типа
испытаний: статическое и динамическое. Статическое испытание можно проводить, на-
пример, на ПЛИС со статическим ОЗУ, тогда испытание будет состоять из следующих ша-
гов: конфигурирование ПЛИС эталонным битовым потоком (прошивкой), содержащим
тестируемый проект, а затем непрерывное считывание данных из конфигурационной
памяти ПЛИС с помощью инструмента iMPACT компании Xilinx через интерфейс JTAG.
В этом эксперименте управляющий ПК сравнивает эталонный битовый поток со считан-
ным битовым потоком. При обнаружении разницы конфигурация ПЛИС восстанавлива-
ется с помощью эталонного битового потока, а различия сохраняются в компьютере. Сбои
определяются как любое инвертирование бита в конфигурационной памяти, обнаружен-
ное процедурой считывания. В этом случае можно рассчитать частоту сбоев в битах конфи-
гурационной памяти для заданного потока.
Сечение взаимодействия в расчете на бит показывает чувствительные участки устрой-
ства и используется для сравнения радиационной чувствительности между различными
устройствами. Рассчитывается согласно формуле (1.1)
см. уравнение (1.1) в книге где NSEU — число SEU в битах конфигурационной памяти, нейтрон — интегральный поток нейтронов, а Nбит — общее число битов в устройстве. Интегральный поток измеряет-
ся в нейтронах на см2 и получается умножением потока нейтронов на время нахождения
устройства в этом потоке.
Динамическое испытание направлено на анализ выводов реализованного проекта
в ПЛИС. В этом случае ожидаемая частота ошибок намного ниже, чем при статических
испытаниях. Для ПЛИС со статическим ОЗУ, по данным доклада о надежности компании Xilinx [16], чтобы вызвать одну ошибку на выходе испытуемого проекта, в среднем необ-
ходимо спровоцировать 20 сбоев в битах конфигурационной памяти. Это соотношение,
конечно же, может варьироваться в зависимости от плотности логических элементов, раз-
мещения, трассировки и выбранной архитектуры проекта. При использовании избыточно-
сти, такой как TMR или n-MR, число скопившихся сбоев в битовом потоке, не приводящих
к функциональной ошибке, может значительно возрасти. Для вариантов ПЛИС с флэш-
памятью и с расплавляемыми токопроводящими перемычками частота устранимых оши-
бок связана только с восприимчивостью конфигурируемой логики к SET и SEU (инверти-
рованию разрядов), поскольку программируемые ячейки памяти (ПЛИС с флэш-памятью
и токопроводящими перемычками) не восприимчивы к кратковременным сбоям.
Статические испытания графических процессоров выполняются по тому же прин-
ципу, что и ПЛИС. По сути, известная модель загружается в структуры основной памяти
устройства и затем считывается. Для доступа к структурам памяти нет специального порта,
поэтому испытания должны быть спроектированы так, чтобы использовать все преимуще-
ства обычных ресурсов графического процессора для записи, а затем считывания шаблона
конфигурации. Динамические испытания графического процессора требуют выбора под-
ходящих эталонных тестов для запуска на устройстве. Следует заметить, что выбранные
эталонные тесты должны соответствовать рабочей нагрузке реального применения. Иначе
результаты испытаний будут действительны только для тестируемой конфигурации. Обыч-
но эталонные тесты выполняются с предварительно выбранными входными данными,
а результаты сверяются с предварительно вычисленной копией. При обнаружении расхо-
ждений их следует считать ошибкой. Для оценки сечения взаимодействия необходимо оце-
нить поток частиц, падающий на устройство, только в процессе выполнения программы,
исключая время проверки результатов. Альтернативно этому можно рассчитать сечение
взаимодействия, разделив наблюдаемую частоту появления ошибок (ошибки/с) на сред-
ний поток, используемый установкой при испытаниях (частицы/(см2 с)).
Во всем мире есть только несколько установок, которые обеспечивают подходящие
потоки и спектр энергий, чтобы согласовать шкалу экспериментальных результатов с ожи-
даемой частотой ошибок в реальных условиях. Примерами таких установок являются
LANSCE в Лос-Аламосе, NM в США, TSL в Уппсале (Швеция), TRIUMF в Ванкувере
(Канада) и ISIS в Дидкоте (Великобритания). В этой книге используются результаты экспериментов, проведенных в Национальной
лаборатории (LANL — Los Alamos National Laboratory’s) «Лос-Аламосский центр по изуче-
нию физики нейтронов» (LANSCE — Los Alamos Neutron Science Center) по облучению
интегральных схем и корпусов электроники, а также в Резерфордской лаборатории ISIS
в Дидкоте (Великобритания), использующих плоский пучок нейтронов. Как показано
в [17], обе эти установки обеспечивают источник нейтронов с белым спектром, который
имитирует спектр энергии потока нейтронов в атмосфере. Спектр ISIS имеет более низкий
уровень высокоэнергетических нейтронов по сравнению с LANSCE и спектром в атмос-
фере Земли. Связь между энергией нейтронов и сечением взаимодействия современных
устройств все еще остается нерешенной проблемой. Тем не менее пучок нейтронов ISIS,
как удалось установить экспериментально, оказался подходящим для имитации пучка
LANSCE и радиационной среды земной атмосферы [17].
На рис. 1.5 и 1.6 показаны схемы экспериментов по изучению воздействий нейтронов
в научном центре ISIS в Великобритании и в Лос-Аламосе соответственно, состоящие
из многих типов ПЛИС и графических процессоров, работающих параллельно.
Литература
1. Nicolaidis M. (2011). Soft errors in modern electronic systems. Springer, New York, p. 318.
2. Stassinopolous E. G., Raymond J. P. (1988). The space radiation environment for electronics.
Proc IEEE 76:1423–1442.
3. Dodd P. E., Massengill L. W. (2003). Basic mechanisms and modeling of single-event upset in
digital microelectronics. IEEE Trans. Nucl. Sci. 50(3):583–602.
4. Kastensmidt F. L., Reis R., Carro L. (2006). Fault-tolerance techniques for SRAM-based
FPGAs (frontiers in electronic testing). Springer, New York.
5. Microsemi. ProASIC3, IGLOO and SmartFusion fl ash family FPGAs datasheet. www. microsemi.
com.
6. Rezgui S., Louris P., Sharmin R. (2010). SEE characterization of the new RTAX-DSP
(RTAX-D) antifuse-based FPGA. IEEE Trans. Nucl. Sci. 57(6):3537–3546.
7. Rech P., Aguiar C., Frost C., Carro L. (2013). An effi cient and experimentally tuned software-
based hardening strategy for matrix multiplication on GPUs. IEEE Trans. Nucl. Sci.
60(4):2797–2804.
8. Rech P., Pilla L., Navaux P. O. A., Carro L. (2014). Impact of GPUs parallelism management
on safety-critical and HPC applications reliability. В: Proceeding IEEE international conference
on dependable systems and networks (DSN), June 2014, pp. 455–466.
Mukherjee S. 9. S., Emer J., Reinhardt S. K. (2005). The soft error problem: an architectural
perspective. В: High-performance computer architecture, 2005. HPCA-11. 11th international
symposium on, 12–16 Feb. 2005, pp. 243–247.
10. Schrimpf R. D., Fleetwood D. M. (2004). Radiation eff ects and soft errors in integrated circuits
and electronic devices. Word Scientifi c, Singapore.
11. Anghel L., Alexandrescu D., Nicolaidis M. (2000). Evaluation of a soft error tolerance technique
based on time and/or space redundancy. In: The Proceedings of symposium on integrated
circuits and systems design, SBCCI, 13, pp. 237–242.
12. Oliveira D. A. G., Rech P., Pilla L. L., Navaux P. O. A., Carro L. (2014). GPGPUs ECC effi
ciency and effi cacy. In: International symposium on defect and fault tolerance in VLSI and
nanotechnology systems.
13. Pilla L. L., Rech P., Silvestri F., Frost C., Navaux P. O. A., Sonza Reorda M., Carro L. (2014).
Software-based hardening strategies for neutron sensitive FFT algorithms on GPUs. IEEE
Trans. Nucl. Sci. 61(4):1874–1880.
14. Sterpone L., Violante M. (2007). A new partial reconfi guration-based fault-injection system
to evaluate SEU eff ects in SRAM-based FPGAs. IEEE Trans. Nucl. Sci. 54(4):965–970.
15. Fang B., Pattabiraman K., Ripeanu M., Gurumurthi S. (2014). GPU-Qin: A methodology
for evaluating the error resilience of GPGPU applications. In: Proceedings of the IEEE international
symposium on performance analysis of systems and software (ISPASS).
16. Xilinx, Inc. (2013). Device reliability report third quarter 2013. http://www.xilinx.com/support/
documentation/user_guides/ug116.pdf.
17. Violante M., Sterpone L., Manuzzato A., Gerardin S., Rech P., Bagatin M., Paccagnella A.,
Andreani C., Gorini G., Pietropaolo A., Cargarilli G., Pontarelli S., Frost C. (2007). A new
hardware/software platform and a new 1/E neutron source for soft error studies: testing FPGAs
at the ISIS facility. IEEE Trans. Nucl. Sci. 54(4):1184–1189.