Подходы к проектированию отказоустойчивой версии процессора LEON3

Работа выполнена в рамках реализации конкурса научно-технических исследований, разработок, инновационных программ и проектов для обеспечения конкурентных преимуществ экономики Красноярского края (Дополнительное соглашение от 05.07.2012 г. № 03/12 к Соглашению № 5 от 06.08.2009 г.)

Чекмарёв Сергей Анатольевич – аспирант Сибирского государственного аэрокосмического университета имени академика М.Ф. Решетнева. (г.Красноярск)

Аннотация: Представлены результаты работы по повышению отказоустойчивости процессора LEON3. Приведено описание модели тестирования архитектурной отказоустойчивости процессора LEON3. Показаны результаты испытаний.

Ключевые слова: Малые космические аппараты, система на кристалле, микропроцессор LEON3.

Существует практика применения индустриальных изделий микроэлектроники (COST) в электронной аппаратуре малых космических аппаратов (МКА) [1]. Существенным фактором развития данного подхода является доступность приобретения предлагаемых элементов в кратчайшие сроки по минимальным ценам.

Вследствие воздействия ионизирующего излучения (ИИ) на аппаратуру МКА, к вычислительно-управляющим системам предлагаемых индустриальных решений предъявляются высокие требования по повышению отказоустойчивости. Увеличение надёжности предлагаемых систем достигается путём применения схем горячего/холодного резервирования, проектированием схем мажорирования [2]. Данные подходы повышают надёжность системы, однако, введённая в результате избыточность неизбежно увеличивает стоимость проекта, энергопотребление, массогабаритные характеристики. Вследствие малых сроков эксплуатации, необходимая надёжность МКА может быть достигнута за счёт повышения отказоустойчивости микропроцессора.

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

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

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

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

Базой, разрабатываемого микропроцессора стал процессор LEON3. Спроектированный Европейским центром космических исследований и космических технологий для применения в космических проектах LEON представляет собой 32-разрядный RISC микропроцессор архитектуры SPARC. Доступная версия процессора LEON3 (не для критических применений) распространяется по лицензии GNU General Public License, имеет открытый исходный код, написанный на языке VHDL, доступный на сайте разработчика (компании Aeroflex Gaisler). Внеся в исходный код IP-блока процессора необходимые изменения, предлагается повысить его отказоустойчивость.

Разработанный блок  REG FILES FT  имеет структуру, представленную на рис 1.

Рисунок 1. Структура блока REG FILES FT

На вход crc кодера подаётся 32-х битная последовательность данных k. Он вычисляет контрольную сумму CRC и записывает новую 36-битную последовательность n в 3-port register file I и в 3-port register file II. Они дублируют друг друга. При обращении процессора к REG FILES FT последовательность n подаётся на CRC декодер. При обнаружении ошибки в 3-port register file I логическое устройство вернёт на запрос процессора последовательность k бит из 3-port register file II. Преимущества данной схемы защиты в скорости расчёта, что делает процесс парирования сбоя прозрачным для процессора. При возникновении одновременной ошибки в обоих участках памяти вырабатывается исключительная ситуация «Ошибка при чтении из регистровой памяти».

Разработанный блок  Cache FT  подобен по своей структуре блоку REG FILES FT. Следует отметить, что при возникновении исключительной ситуации «Ошибка при чтении из Кэш памяти» процессор просто возьмёт верный вариант из ОЗУ. Таким образом, отказоустойчивая архитектура Кэш памяти также является прозрачной для работы приложений, выполняемых процессором LEON3.

Схема отказоустойчивого контроллера памяти представлена на рисунке 2.

Рисунок 2. Структура отказоустойчивого контроллера памяти

Здесь AHB и APB – две составляющих шины AMBA (внутрикристальная шина, по которой идёт информационный обмен между процессором и другими устройствами проекта). A, D, CB – шина адреса, шина данных, шина корректирующих битов соответственно. В разработанном контроллере применяется БЧХ код, позволяющий скорректировать одиночную и обнаружить двойную ошибку в 32-ух битном слове.

Важным условием отладки архитектуры процессора при рассмотренных подходах является фиксация ошибок и количества исправленных ошибок при испытаниях процессора на отказоустойчивость. Поэтому в IP ядро процессора LEON3 помимо модуля фиксации и исправлений ошибок предлагается внедрить модуль для генерации ошибок, соответствующим образом подключенный к блокам регистровой памяти и Кэшу (основному и резервному).

В качестве модели для генератора ошибок использованы результаты работы [3]. На основании данной работы была разработана VHDL-модель LEON3-FT-MODEL, имитация работы которой производилась в программе ModelSim (популярная среда для отладки и симулирования ПЛИС от компании Mentor Graphics). При симулировании работы был написан testbench – файл, описывающий модель внесения ошибок в память процессора LEON3.

Для разработанного генератора ошибок можно выбрать такие параметры, как кратность резервирования устройства, его тип (горячее, холодное), количество процессоров, а также режим работы системы (сеансовый, дежурный, переключения резервных комплектов (РПП)) и т.д.. Исходя из этих данных, выбирается выражение для вероятности безотказной работы (ВБР) системы.

После расчета ВБР рассчитывается вероятность ошибки в данный момент времени. Исходя из данной вероятности, блок генерации ошибок случайным образом выбирает адрес в памяти и количество искажаемых бит. Далее вносится соответствующая ошибка в память процессора. Для этого, на момент внесения ошибки, работа самого процессора приостанавливается. Результат отработки данной ошибки фиксируется и сохраняется в специальный модуль «statistics».

По завершению испытания информация с блока статистики выдаётся  пользователю.

При проведении испытаний процесс протекания модельного времени t был ускорен. За 1015 дней работы модельного времени в систему было внесено порядка 21000 ошибок. Из них, эффективных (ошибки, приведшие к обращению в дублированный блок памяти) оказалось порядка 19000. Исправлено было порядка 16430 ошибок. Остальные ошибки были обработаны специальным прерыванием и привели к перезагрузке процессора.

Таким образом, была оценена возможность создания отказоустойчивой версии процессора LEON3. Далее планируется апробировать аппаратную реализацию данных подходов.

Список литературы:

1. Данилин Н.С., Белослудцев С.А. Проектирование и разработка космических бортовых приборов, ориентированных на современную зарубежную электронную компонентную базу. [статья] - СОВРЕМЕННАЯ ЭЛЕКТРОНИКА № 4 2008г. с.54-59.
2. Попович А.Ф. Практический подход к резервированию вычислительно-управляющей системы средствами сети SpaceWire. [статья] - КОМПОНЕНТЫ И ТЕХНОЛОГИИ  № 4 2010г. С77-80.
3. Ле Куанг Минь «МЕТОДИКА И СРЕДСТВА ОБЕСПЕЧЕНИЯ ОТКАЗОУСТОЙЧИВОСТИ БОРТОВЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ» [диссертация]- Московский государственный технический университет им. Н.Э. Баумана. Москва 2008г.

Интересная статья? Поделись ей с другими: