Для контроля и диагностики цифровых устройств применяются две основные группы методов: тестовые и функциональные. Для их реализации используются аппаратные и программные средства. При тестовом контроле осуществляют подачу специальных воздействий (тестов), снятие и анализ реакций контролируемой системы (устройства, узла) в то время, когда она, как правило, не работает по своему прямому назначению. Этим и определяется область применения этого вида контроля: в процессе наладки систем, во время регламента, для автономной проверки систем перед началом штатного функционирования.
Функциональный контроль предназначен для контроля и диагностирования системы в процессе ее работы. Однако если, средства функционального контроля имеются в системе, то они, как правило, используются и при тестовом контроле. Средства функционального контроля обеспечивают:
- обнаружение неисправности в момент ее первого проявления в контрольной точке, что особенно важно в случае, когда действие неисправности надо быстро блокировать;
- выдачу информации, необходимой для управления работой системы при наличии неисправности, в частности, для изменения (реконфигурации) структуры системы;
- сокращение времени поиска неисправности.
При использовании аппаратных средств функционального контроля в состав узла или устройства вводится избыточная аппаратура, которая функционирует одновременно с основной аппаратурой. Сигналы, возникающие в процессе функционирования основной и контрольной аппаратуры, сопоставляются по определенным законам. В результате такого сопоставления вырабатывается информация о правильности функционирования контролируемого узла (устройства), В качестве избыточной аппаратуры в простейшем случае используется копия проверяемого узла (так называемая структурная избыточность), а также и простейшее контрольное соотношение в виде сравнения двух одинаковых наборов кодов. В общем случае используются более простые контрольные устройства, зато усложняются способы получения контрольных соотношений.
Для контроля функционирования основного и контрольного устройств применяют методы сопоставления: входных и выходных слов, внутренних состояний и переходов.
Первому методу отвечает дублирование, мажорирование, а также контроль по запрещенным кодовым комбинациям. К нему относятся также методы избыточного кодирования. Избыточное кодирование основывается на введении во входную, обрабатываемую и выходную информации дополнительных символов, которые вместе с основными образуют коды, обладающие свойствами обнаружения (исправления) ошибок. Второй метод используют преимущественно для контроля управляющих цифровых устройств.
Для контроля получили распространение следующие типы кодов: код с проверкой на четность, код Хэмминга, итеративные коды, равновесные, коды в остатках, циклические коды.
Код с проверкой четности (нечетности) образуется путем добавления к группе информационных разрядов, представляющих собой простой (не избыточный) код, одного избыточного (контрольного) разряда. При использовании контроля по четности контрольная цифра четности равна «0», если число единиц в коде четное, и «1», если число единиц нечетное. В дальнейшем при передаче, хранении и обработке слово передается со своим разрядом. Если при передаче информации приемное устройство обнаруживает, что значение контрольного разряда не соответствует четности суммы единиц слова, то это воспринимается как признак ошибки. По нечетности контролируется полное пропадание информации, так как кодовое слово, состоящее из нулей, относится к запрещенным. Код с проверкой четности имеет небольшую избыточность и не требует больших затрат оборудования на реализацию контроля. Этот код применяют для контроля: передача/информации между регистрами, считывания информации в оперативной памяти, обменов между устройствами.
Итеративные коды применяют при контроле передач массивов кодов между внешним ЗУ и процессором, между двумя процессорами и в других случаях. Итеративный код образуется путем добавления дополнительных разрядов по четности к каждой строке каждому столбцу передаваемого массива слов (двумерный код). Кроме того, четность может определяться еще и по диагональным элементам массива слова (многомерный код). Обнаруживающая способность кода зависит от числа дополнительных контрольных символов. Он позволяет обнаружить многократные ошибки и прост в реализации.
Корреляционные коды характеризуются введением дополнительных символов для каждого разряда информационной части слова. Если в каком-либо разряде слова стоит 0, то в корреляционном коде это записывается как «01», если 1, то символом «10». Признаком искажения кодов является появление символов «00» и «11».
Код с простым повторением (контроль по совпадению) основан на повторении исходной кодовой комбинации, декодирование происходит путем сравнения первой (информационной) и второй (проверочной) частей кода. При несовпадении этих частей принятая комбинация считается ошибочной.
Равновесные коды используются для контроля передач данных между устройствами, а также при передаче данных по каналам связи. Равновесный код - это код, который имеет некоторое фиксированное число единиц (весом называется число единиц в коде). Примером равновесного кода является код "2" из "5", из "8". Существует бесконечное количество равновесных кодов.
Контроль по запрещенным комбинациям, в микропроцессорных устройствах используются специальные схемы, обнаруживающие появление запрещенных комбинаций, например, обращение по несуществующему адресу, обращение к несуществующему устройству, неправильный выбор адреса.
Корректирующий код Хэмминга строится таким образом, что к имеющимся информационным разрядам слова добавляется определенное число D контрольных разрядов, которые формируются перед передачей информации путем подсчета четности сумм единиц для определенных групп информационных разрядов. Контрольное устройство на приемном конце образует из принятых информационных и контрольных разрядов путем аналогичных подсчетов четности адрес ошибки, ошибочный разряд корректируется автоматически.
Циклические коды применяют в средствах последовательной передачей двоичных символов, составляющих слово. Типичным примером таких средств служит канал связи, по которому осуществляется передача дискретных данных. Особенность циклических кодов, определяющих их название, состоит в том, что если N-значная кодовая комбинация принадлежит данному коду, то и комбинация, полученная циклической перестановкой знаков, также принадлежит этому коду. Основным элементом кодирующей и декодирующей аппаратуры при работе с такими кодами служит сдвигающий регистр с обратной связью, обладающий необходимыми циклическими свойствами. Циклический код N-значного числа, как и всякий систематический код, состоит из информационных знаков и контрольных, причем последние всегда занимают младшие разряды. Так как последовательная передача производится, начиная со старшего разряда, контрольные знаки передаются в конце кода.
Программные средства функционального контроля используются для повышения достоверности функционирования отдельных устройств, систем и сетей в том случае, когда эффективность аппаратных средств обнаружения ошибок оказывается недостаточной. Программные методы функционального диагностирования основаны на установлении определенных соотношений между объектами, участвующими в ходе работы для обеспечения обнаружения ошибок. В качестве объектов могут выступать отдельные команды, алгоритмы, программные модули, комплексы программ (функциональных и служебных).
Контрольные соотношения устанавливаются на системном, алгоритмическом, программном и микропрограммном уровнях.
В основе формирования контрольных состояний лежат два принципа:
- реализация программными средствами различного уровня методов функционального диагностирования на основе теории кодирования, т.е. используется информационная избыточность;
- составление специальных соотношений по различным правилам на основе использования временной избыточности (двойной и многократный счет, сравнение с заранее рассчитанными пределами, усечение алгоритма и др.) путем преобразования вычислительного процесса.
Оба принципа используются для диагностирования всех основных операций, выполняемых процессорными средствами - операций ввода – вывода, хранения и передач информации, логических и арифметических.
Достоинством программных средств функционального контроля является гибкость и возможность использования любого сочетания для оперативного обнаружения ошибок. Они играют важную роль в обеспечении требуемого уровня достоверности обработки информации. Для своей реализации они требуют дополнительных затрат машинного времени и памяти, дополнительных операций по программированию и подготовке контрольных данных.
Контроль методом двойного или многократного счета состоит в том, что решение всей задачи в целом или отдельных ее частей выполняется два или более раз. Результаты сравниваются и их совпадение считается признаком верности. Используются и более сложные правила сравнения, например, мажорированные, когда за правильный принимаем результат, который соответствует большему числу правильных результатов.
Реализация двойного или многократного счета состоит в том, что определяются контрольные точки, в которых будет проходить cpaвнение, и выделяются специальные объемы памяти для хранения результатов промежуточных и окончательных вычислений, применяются команды сравнения и условного перехода на продолжение вычисления (при совпадении результатов) либо на очередное повторение (при несовпадении результатов.).
Контроль по методу усеченного алгоритма, на основе анализа алгоритмов, выполняемых процессором, строится так называемый усеченный алгоритм. Задача решается как по полному алгоритму, обеспечивающему необходимую точность, так и по усеченному алгоритму, который позволял быстро получить решение, хотя и с меньшей точностью. Затем проводится сравнение точного и приближенного результатов. Примером усеченного алгоритма является изменение шага решения (увеличение) при решении дифференциальных уравнений.
Способ подстановки. При решении систем уравнений, в том числе нелинейных и трансцендентных, предусматривается подстановка в исходные уравнения найденных значений. После этого производится сравнение правых и левых частей уравнения с целью определения невязок. Если невязки не выходят из заданных пределов, решение считается правильным. Время, затраченное на такой контроль, всегда меньше, чем на повторное решение. Кроме того, таким способом обнаруживайте не только случайные, но и систематические ошибки, которые двойным счетом часто пропускаются.
Метод проверки предельных значений или метод "вилок". В большинстве задач можно заранее найти пределы ("вилку"), в которых должны находиться некоторые искомые величины. Это можно сделать, например, на основе приближенного анализа процессов, описываемых данным алгоритмом. В программе предусматриваются определенные точки, где реализуется проверка на нахождение переменных в заданных пределах. Таким методом можно обнаруживать грубые ошибки, которые делают бессмысленным продолжение работы.
Проверка с помощью дополнительных связей. В некоторых случая удается использовать для контроля дополнительные связи между искомыми величинами. Типичным примером таких связей являются известные тригонометрические соотношения. Возможно использование корреляционных связей для задач обработки случайных процессов, статической обработки. Разновидностью этого подхода являются так называемые балансовые методы их суть в том, что отдельные группы данных удовлетворяют определенным соотношениям. Метод позволяет обнаруживать ошибки, вызванные сбоями.
Метод избыточных переменных состоит во введении дополнительных переменных, которые либо связаны известными соотношениями с основными переменными, либо значения этих переменных при определенных условиях известны заранее.
Контроль методом обратного счета, при этом по полученному результату (значениям функции) находят исходные данные (аргументы) и сравнивают их с первоначально заданными исходными данными. Если они совпадают (с заданной точностью), то полученный результат считаете верным. Для обратного счета часто используют обратные функции. Применение этого метода целесообразно в тех случаях, когда реализация обратных функций требует незначительного числа команд, затрат машинного времени и памяти.
Метод контрольного суммирования. Отдельным массивам кодовых слов (программ, исходным данным и т.д.) ставятся в соответствие избыточные контрольные слова, которые заблаговременно получают путем суммирования всех слов данного массива. Для осуществления контроля проводится суммирование всех слов массива и поразрядное сравнение с эталонным словом. Например, при передаче данных по каналу связи все закодированные слова, числа и символы передаваемой группы записей суммируются на входе для получения контрольных сумм. Контрольная сумма записывается и передается вместе с данными.
Контроль методом счета записи. Записью называют точно установленный набор данных, характеризующий некоторый объект или процесс. Можно заранее произвести подсчет количества записей, содержащихся в отдельных массивах. Это число записывается в память. При обработке соответствующего массива данных контрольное число периодически проверяется с целью обнаружения потерянных или необработанных данных.
Контроль за временем решения задач и периодичностью выдаваемых результатов, является одним из принципов определения правильности хода вычислительного процесса. Чрезмерное увеличение длительности решения свидетельствует о "зацикливании" программы. Этой же цели служат так называемые маркерные импульсы (или метки времени) применяемые в системах реального времени. Маркерные импульсы используют для предотвращения того, что вследствие ошибки в последовательности команд процессор остановится или будет совершать неправильные циклы вычисления. Они используются как для всего алгоритма, так и для отдельных участков.
Реализация этих способов состоит в определении самого длинного маршрута следования команд с учетом прерываний другими программами. В составе процессора используют программный счетчик времени, на котором устанавливают предельно допустимое время реализации программы. При достижении нулевого значения в счетчике вырабатывается сигнал превышения допустимого контрольного времени, который обеспечивает прерывание программы. Контроль последовательности выполнения команд и программных модулей осуществляется двумя способами. Программа разбивается на участки, и для каждого участка вычисляется свертка (путем счета числа операторов, методом сигнатурного анализа, использование кодов). Затем снимается трасса прохождения программы и для нее вычисляется свертка и сравнивается с заранее рассчитанной. Другой способ состоит в том, что каждому участку присваивается определенное кодовое слово (ключ участка). Этот ключ записывается в выбранную ячейку ОЗУ перед началом выполнения участка, одна из последних команд участка проверяет наличие "своего" ключа. Если кодовое слово не соответствует участку, то имеется ошибка. Узлы разветвляющихся программ проверяются повторным счетом, а выбор только одной ветки - с помощью ключей. Контроль циклических участков программы состоит в проверке числа повторений цикла, за счет организации дополнительного программного счетчика.
При тестовом контроле проверку узлов, устройств и системы в целом осуществляют с помощью специального оборудования - генераторов тестовых воздействия и анализаторов выходных реакций. Необходимость в дополнительном оборудовании и временные затраты (невозможность штатного (функционирования во время проведения тесте ограничивает использование тестовых методов.
Тестирование со штатной программой, функциональная схема организации такого тестирования включает генератор тестов, содержащий набор, заранее подготовленных статистических тестов и анализатор, работающий по принципу сравнения выходной реакции с эталонной, полученной также заранее специальными средствами подготовки тестов.
При вероятностном тестировании в качестве генератора тестов используется генератор псевдослучайных воздействий, реализованный, например, сдвиговым регистром с обратными связями. Анализатор обрабатывает выходные реакции по определенным правилам (определяет математическое создание числа сигналов) и сравнивает полученные значения с эталонными. Эталонные значения рассчитываются либо получают на предварительно отлаженном и проверенном устройстве.
Контактное тестирование (сравнение с эталоном) заключается в том, что способ стимуляции может быть любой (программный, от генератора псевдослучайных воздействий), а эталонные реакции образуются в процессе тестирования с помощью дублирующего устройства (эталона). Анализатор производит сравнение выходной и эталонной реакции.
Синдромное тестирование (метод подсчета числа переключении). Функциональная схема содержит генератор тестов, который генерирует подсчитывает 2N наборов на вход схемы, а на выходе имеется счетчик, который подсчитывает число переключении, если число переключений не равно эталонному значению, то схема считается неисправной.
При сигнатурном тестировании выходные реакции, получаемые за фиксированный интервал времени обрабатываются на регистре сдвига с обратными связями - сигнатурном анализаторе, позволяющем сжимать длинные последовательности в короткие коды (сигнатуры). Полученные таким путем сигнатуры сравниваются с эталонными, которые получаются расчетным путем, либо на предварительно отлаженном устройстве. Стимуляция объекта контроля осуществляется с помощью генератора псевдослучайных воздействий.
В заключении следует отметить, что не существует универсального метода контроля. Выбор метода должен производиться в зависимости от функционального назначения цифрового устройства, структурной организации системы, требуемых показателей надежности и достоверности.
При проведении регламентных работ или во врем предполетной подготовки ИВК основными методами контроля являются тестовые методы. В процессе полета основными являются функциональны методы контроля, а тестирование в основном производится с целью локализации неисправностей, в случае их возникновения.
6. ПРОГНОЗИРОВАНИЕ СОСТОЯНИЯ ИЗМЕРИТЕЛЬНО-ВЫЧИСЛИТЕЛЬНЫХ КОМПЛЕКСОВ ПРИ УЧЕТЕ ВЛИЯНИЯ
УПРУГИИХ СВОЙСТВ НА ОБЪЕКТ КОНТРОЛЯ