СИСТЕМА ИНЪЕКЦИИ СБОЕВ

Полезная модель относится к области электронного космического приборостроения и предназначена для тестирования сбоеустойчивости микропроцессорных систем типа «система на кристалле».
В настоящее время усилия в области проектирования сбоеустойчивых микропроцессорных систем концентрируются на защите от одиночных сбоев внутренней памяти микропроцессора: кэш-памяти и регистрового файла. Эффективным способом тестирования сбоеустойчивости микропроцессорных систем является инъекция сбойных событий во внутреннюю память с помощью метода внутрикристальной отладки. Данный метод позволяет: остановить микропроцессор в требуемое время; прочитать содержимое внутренней памяти по определенному адресу; внести изменение в прочитанное содержимое, имитируя однократный сбой; записать модифицированное содержимое обратно во внутреннюю память; возобновить работу микропроцессора.
Известна система инъекции сбоев (СИС), основанная на внутрикристальной отладке микропроцессоров и компьютерных систем на их основе (A. Fidalgo, J. Ferreira. Using NEXUS Compliant Debbuggers for Real Time Fault Injection on Microprocessors - SBCCI′06 19th Symposium on Integrated Circuits and System Design, Minas Gerais, Brazil - August 28 - September 01, 2006, p. 214-219). СИС состоит из управляющего компьютера, устройства отладки и тестируемой микропроцессорной системы. Микропроцессор тестируемой системы содержит внутрикристальный отладчик, совместимый со стандартом Nexus (The Nexus 5001 Forum Standard for a Global Embedded Processor Interface version 2.0, IEEE-ISTO 5001, 2003, 166р.), который определяет требования к устройству отладки, и интерфейсу, связывающему устройство отладки с внутрикристальным отладчиком. Инъекции одиночных сбоев непосредственно выполняет внешнее по отношению к тестируемой микропроцессорной системе устройство отладки. Данная СИС не позволяет проводить длительные автономные от управляющего компьютера эксперименты по многократному внесению одиночных сбоев, например, на тысячу и более событий по причине того, что устройство отладки не является устройством, специально предназначенным для внесения сбоев, а функции подготовки планируемых сбойных событий и хранения промежуточных результатов инъекций сбоев осуществляются с помощью программного обеспечения управляющего компьютера. Кроме того, использование для инъекции сбоев внешнего устройства отладки усложняет проведение экспериментов.
Известна СИС, основанная на возможностях внутрикристальной отладки микропроцессоров, использующая стандарт IEEE JTAG 1149.1 (IEEE Standard Test Access Port and Bondary-Scan Architecture, IEEE Std 1149.1, 2001 - 212р.), и состоящая из управляющего компьютера, внешнего специализированного устройства инъекции сбоев и тестируемой микропроцессорной системы, имеющей внутрикристальный отладчик (М. Portela-Garcia, С.Lopez-Ongil, М. Garcia-Valderas, L. Entrena. A Rapid Fault Injection Approach for Measuring SEU Sensitivity in Complex Processors - IOLTS 2007, 13th IEEE International On-Line Testing Symposium - Heraklion, Crete, Greece July 8 to July 11, 2007 - p.101-106). Устройство инъекции сбоев состоит из контроллера инъекции сбоев, накопителя планируемых сбоев, накопителя результатов инъекций, модуля команд отладчика и контроллера интерфейса JTAG. В данной системе процессы управления инъекциями, подготовки планируемых сбоев и хранения промежуточных результатов инъекций сбоев осуществляются с помощью специализированного устройства инъекции сбоев. СИС позволяет проводить длительные автономные от управляющего компьютера эксперименты по многократному внесению одиночных сбоев, например, на тысячу и более событий. Недостатком данной СИС является ее сложность, так как в ее состав входит внешнее специализированное устройство инъекции сбоев.
Известна СИС, основанная на внутрикристальной отладке микропроцессоров и компьютерных систем на их основе (A. Fidalgo, М. Gerigota, G. Alves, J. Ferreira. Real-time fault injection using enhanced on-chip debug infrastructures - Microprocessors and Microsystems №25, 2011 - p.441-452), использующая стандартизированный подход к отладке NEXUS. Система состоит из управляющего компьютера, внешнего устройства отладки и тестируемой микропроцессорной системы, имеющей блок внутрикристальной отладки и контроллер инъекции одиночных сбоев, который размещен непосредственно во внутрикристальном отладчике микропроцессора тестируемой системы, что обеспечивает более высокую скорость инъекций одиночных сбоев. Недостатком СИС является ее сложность, поскольку система включает внешнее устройство отладки. Кроме того, система не позволяет проводить длительные автономные от управляющего компьютера эксперименты по многократному внесению одиночных сбоев, например, на тысячу и более событий, так как функции подготовки планируемых сбоев и хранения промежуточных результатов инъекций сбоев выполняет внешний управляющий компьютер.
Известна СИС, основанная на внутрикристальной отладке микропроцессоров типа «система на кристалле» и компьютерных систем на их основе (Jiri Gaisler. LEON3-FT-RTAX SEU test results. Gaisler Research - Issue 1, December 7, 2005 - 8p.), принятая за прототип. СИС состоит из управляющего компьютера и тестируемой микропроцессорной системы типа «система на кристалле», содержащей взаимодействующие с помощью внутрикристальной шины микропроцессорное ядро, имеющее внутрикристальный отладчик, связанный с внутрикристальной шиной, контроллер внешней памяти, к которому подключена внешняя память, контроллер внешнего интерфейса, с помощью которого тестируемая микропроцессорная система соединена по внешнему интерфейсу с управляющим компьютером. С помощью такой структуры связей внешний управляющий компьютер для выполнения инъекций сбойных событий может взаимодействовать с внутрикристальным отладчиком.
Недостатком прототипа является то, что все процессы управления инъекциями, подготовки планируемых сбойных событий и хранения промежуточных результатов инъекций сбоев осуществляются с помощью программного обеспечения управляющего компьютера, что снижает производительность системы и вынуждает использовать высокоскоростные интерфейсы, например, Ethernet, для связи управляющего компьютера с тестируемой микропроцессорной системой. Кроме того, такая СИС не является системой реального времени, так как временные задержки при внесении сбойных событий являются непостоянными - изменяемыми по длительности в зависимости от процессов взаимодействия программного обеспечения, осуществляющего инъекции одиночных сбоев, и операционной системы управляющего компьютера.
Задачей полезной модели является расширение функциональных возможностей системы инъекции сбоев, позволяющее проводить автономное от управляющего компьютера многократное внесение одиночных сбоев с постоянной временной задержкой в тестируемую микропроцессорную систему, а также увеличение ее производительности.
Поставленная задача обеспечивается тем, что в известной системе инъекции сбоев, состоящей из тестируемой микропроцессорной системы типа «система на кристалле», выполненной с возможностью соединения с управляющим компьютером и содержащей взаимодействующие с помощью внутрикристальной шины микропроцессорное ядро, имеющее внутрикристальный отладчик, связанный с внутрикристальной шиной, контроллер внешней памяти, к которому подключена внешняя память, контроллер внешнего интерфейса, с помощью которого тестируемая микропроцессорная система имеет возможность соединения по внешнему интерфейсу с управляющим компьютером, согласно техническому решению, тестируемая микропроцессорная система дополнительно содержит инъектор одиночных сбоев, взаимодействующий по внутрикристальной шине с внутрикристальным отладчиком, и состоящий из контроллера инъектора сбоев, генератора планируемых сбоев и накопителя результатов воздействия сбоев.
На чертеже представлена система инъекции сбоев.
Система содержит тестируемую микропроцессорную систему 1, выполненную с возможностью соединения с управляющим компьютером 2 по внешнему интерфейсу 3. Тестируемая система состоит из реализованной на программируемой логической схеме типа FPGA «системы на кристалле» 4, включающей микропроцессорное ядро 5, инъектор сбоев 6, контроллер внешней памяти 7, контроллер внешних интерфейсов 8, и внешнюю память 9. Все компоненты «системы на кристалле» взаимодействуют друг с другом с помощью внутрикристальной шины 10. Микропроцессорное ядро 5 содержит внутрикристальный отладчик 11, внутреннюю память 12, обладающую механизмом обнаружения и исправления ошибок, и регистр состояния внутренней памяти 13. Инъектор сбоев состоит из контроллера инъекции сбоев 14 и связанных с ним генератора планируемых сбоев 15 и накопителя результатов сбоев 16.
Система инъекции сбоев работает следующим образом.
Управляющий компьютер 2 инициализирует время начала эксперимента по инъекции сбоев во внутреннюю память 12 микропроцессорного ядра 5. Генератор планируемых сбоев 15 определяет время, адрес и позицию ячейки внутренней памяти 12. Данное действие может производиться автоматически, например, по случайному равномерному закону или считываться из листа сбоев, предварительно загруженного из управляющего компьютера 2. Контроллер инъекции сбоев 14, используя информацию, полученную от генератора планируемых сбоев 15, с помощью внутрикристального отладчика 11 заносит ошибку в требуемый бит по требуемому адресу внутренней памяти 12 путем инвертирования его содержания на противоположное. Для внесения ошибки внутрикристальный отладчик 11 останавливает микропроцессорное ядро 5, читает требуемую ячейку внутренней памяти 12, инвертирует требуемый бит и обратно записывает полученный результат во внутреннюю память 12. Затем контроллер инъекции сбоев 14 и внутрикристальный отладчик 11, взаимодействующие по внутрикристальной шине 10, аналогичным образом при наступлении времени очередной инъекции, определяемом генератором планируемых сбоев 15, повторяют описанные действия. Если при выполнении микропроцессорным ядром 5 текущей выполняемой программы механизм обнаружения и исправления ошибок внутренней памяти 12 обнаруживает сбой, то в зависимости от результата сбоя признаки результативности сбоев «сбой обнаружен и исправлен» и «сбой обнаружен и не исправлен» сохраняются в регистре состояния внутренней памяти 13. Параллельно контроллер инъекции сбоев 14 опрашивает, используя внутрикристальный отладчик 11, регистр состояния внутренней памяти 13 для нахождения фактов обнаружения сбоев. Для этого он выдает соответствующие инструкции внутрикристальному отладчику 11, который читает регистр состояния внутрикристальной памяти 13 и анализирует признаки результативности сбоев. Если признаки результативности сбоев установлены, то данная информация записывается инъектором сбоев 6 в накопитель результатов инъекции сбоев 16. Процесс инъекции сбоев продолжается до тех пор, пока не закончится лист сбоев, предварительно загруженный в генератор планируемых сбоев 15, или пока управляющий компьютер 2 принудительно не остановит работу автоматического
генератора планируемых сбоев 15 и тем самым не прекратит эксперимент по инъекции сбоев.
По окончании эксперимента результаты инъекции из накопителя результатов сбоев 16 передаются в управляющий компьютер 2. Если инъекция производилась автоматически с помощью генератора сбоев, то информация о количестве внесенных сбоев за время эксперимента также передается из инъектора сбоев 6 в управляющий компьютер 2. Полученные результаты обрабатываются в управляющем компьютере 2 для оценки эффективности механизма обнаружения и исправления ошибок внутренней памяти, и тем самым оценки сбоеустойчивости микропроцессоров типа «система на кристалле» к одиночным сбоям.
Предлагаемая система инъекции сбоев за счет использования генератора сбоев 15 позволяет проводить длительные автономные от управляющего компьютера эксперименты по инъекции сбоев практически любого количества (сотни, тысячи, десятки тысяч и более).
Предлагаемая система инъекции сбоев позволяет инъектировать одиночные сбои не только однократные, когда искажается только 1 бит внутренней памяти, но и двух- и трехкратные, когда искажаются соседние 2 или 3 бита, что достигается соответствующей настройкой генератора планируемых сбоев 15.
Генератор планируемых сбоев 15 позволяет реализовывать не только случайный равномерный закон инъекции сбоев, но и любой другой, в том числе имитирующий деградацию тестируемой микропроцессорной системы в процессе ее эксплуатации в связи с накоплением дозы радиации от ионизирующего излучения космического пространства.
Используемый в составе системы инъекции сбоев инъектор сбоев является самостоятельным сложно-функциональным блоком, не влияющим на работу остальных частей микропроцессорной системы, поэтому после проведения всех экспериментов по внесению одиночных сбоев во внутреннюю память микропроцессорного ядра, подтвердивших удовлетворительную сбоеустойчивость микропроцессора, инъектор сбоев можно удалить, и таким образом микропроцессорная система не будет иметь инъектора сбоев в своем составе. Если инъектор сбоев оставить в составе микропроцессорной системы, то он может
использоваться для диагностирования сбоеустойчивости в условиях штатной эксплуатации микропроцессорной системы в качестве, например, бортового компьютера космического аппарата.