Лекция 5
Система контроля неисправностей и обнаружения ошибок
План лекции:
-
Принципы реализации систем контроля и диагностики
-
Тестирование памяти
-
Система контроля неисправностей
-
Требования к системе контроля и диагностики.
Принципы реализации систем контроля и диагностики
Системы контроля ЭВМ представляют собой совокупность программных и аппаратных средств, использующихся для определения технического состояния ЭВМ и поддержания необходимого уровня эффективности ее работы.
.
В зависимости от метода, положенного в основу контроля ЭВМ различают 2 вида контроля: программный и аппаратный. Каждый из них может использоваться как в оперативном режиме, так и в режиме профилактических проверок, причем контроль может быть как автоматическим, так и с привлечением операторов.
Программный контроль, основан на использовании специальных программ, контролирующих работу машины. Он подразделяется на программно-логический и тестовый.
Программно-логический контроль основан на том, что в основную рабочую программу вводятся дополнительные операции, при выполнении которых получается избыточная информация, необходимая для обнаружения и исправления ошибки. Часто прибегают к двойному просчету, при этом контрольная операция сводится к установлению факта совпадения двух результатов. К ним также относятся: контроль четности, сверка контрольной суммы.
Тестовый контроль предназначен для проверки работоспособности машины с помощью тестовых программ. Тестовая программа содержит готовый результат расчета, в случае несовпадения результатов расчета с информацией, не связанной в тесте – фиксируется ошибка.
Тесты подразделяются:
-
наладочные;
-
проверочные;
-
диагностические.
Наладочные – служат для проверки правильности функционирования узлов и блоков ЭВМ при наладке после монтажа. Они позволяют выявить грубые ошибки, допущенные при сборке.
Проверочные – предназначены для периодической проверки работоспособности ЭВМ и обнаружения неисправностей в процессе эксплуатации.
Диагностические – в дополнение к проверочным позволяют локализовать место неисправности.
В построении системы автоматического контроля работы ЭВМ тесты играют самую значительную роль.
В любом компьютере (вычислительной системе) работа начинается с выполнения проверочных тестов, запускаемых при включении питания (POST – Power On Self Test). Такой тест выполняется после получения сигнала начального сброса любым современным процессором (начиная с i386). В него включаются обычно действия, обеспечивающие все управляющие ПЗУ и большинство логических схем. Тест считается успешным, если после его окончания содержимое регистров EAX=EDX=0.
Тестирование памяти
Дефекты ЗУ могут быть связаны как с неисправностью непосредственно модулей ЗУ, так и с дефектами внешнего оборудования (замыкания/разрывы линий шин адреса и данных, дефекты блока питания, тактирующих генераторов, схем регенерации памяти, превышение нагрузочной способности выходов и т.п.). Они могут проявляться в виде замыкания разрядов адресов, замыкания разрядов данных, отдельных неисправных ячеек, искажений отдельных ячеек при нагревании, пульсациях питания и т.п.
Для ПЗУ с пережигаемыми перемычками из поликристаллического кремния возможно «зарастание» перемычек. В остальных типах возможно самопроизвольное стирание.
При разработке программного обеспечения тестирования ЗУ следует обратить внимание на релоцируемость программ, т.е. возможность перемещения их в памяти, необходимость восстановление стека и системных переменных после тестирования соответствующих ячеек памяти, обход участков, занятых внешними устройствами, отображенными на память и т.п.
Тестирование ПЗУ сводится, как правило, к проверке корректности контрольной суммы данных, хранящихся в нем.
Приведем далее некоторые типы тестов, применяемые для диагностирования ОЗУ [2].
Все нули (все единицы). Во все ячейки ОЗУ производится запись нулей (единиц), после чего производится последовательное считывание и проверка этой информации. Развитием этого теста является
сканирующий. Производится запись нулей (единиц) во все ячейки ОЗУ, затем выполняется последовательное считывание и проверка. После этого во все ячейки записываются единицы (нули) и процесс повторяется. Сканирующий тест используется для проверки ОЗУ в условиях максимальной статической помехи, вызванной суммарным током утечки всех ячеек ОЗУ, находящихся в одном состоянии.
Адресный. В каждую ячейку ОЗУ записывается код собственного адреса (сумма старшего и младшего байтов), затем производится последовательное считывание и проверка этой информации. Адресный тест обеспечивает проверку адресных дешифраторов ОЗУ.
Шахматный. В ОЗУ записывается байты данных, содержащие чередующиеся нули и единицы в шахматном порядке. Подобный порядок образуется, например, при записи в соседние строки последовательности вида 5555h, AААAh, 5555h, AААAh,… При этом должен учитываться размер строки в матрице ОЗУ. Затем производится последовательное считывание и проверка этой информации. Шахматный тест используется для проверки взаимовлияния ячеек, содержащих информацию, записанную в обратном коде.
Чередующиеся строки 0 и 1. В смежные строки ОЗУ записывается байты данных вида 0000h, FFFFh, 0000h, FFFFh, … Также следует учитывать размер строки в матрице ОЗУ. Затем производится последовательное считывание и проверка этой информации. Этот тест используется для проверки взаимовлияния адресных шин по строкам.
Чередующиеся столбцы 0 и 1. В ячейки ОЗУ записывается такая информация, чтобы смежные столбцы ОЗУ содержали информацию в обратном коде, затем производится последовательное считывание и проверка этой информации. Этот тест используется для проверки взаимовлияния адресных шин по столбцам.
Запись и запись/считывание вперед и назад. По всем адресам ОЗУ записываются нули, затем производится последовательное считывание и проверка этой информации. После проверки каждой очередной ячейки в нее записывается информация в обратном коде (единицы). После проверки последней ячейки и записи в нее единиц процедура повторяется от старшего адреса к младшему с чтением единиц, их проверкой и записью нулей. Этот тест используется для проверки взаимовлияния соседних ячеек при смене в них информации.
Марширующий. Во все ячейки ОЗУ записываются единицы, затем производится последовательное считывание информации с проверкой и заменой ее на нули. После обращения к последнему адресу процедура повторяется с данными в обратном коде, т.е. последовательное считывание нулей, начиная с первой ячейки, с проверкой и заменой ее на единицы. После обращения к последнему адресу процедура повторяется с данными в обратном коде, т.е. с нулями, и в обратном направлении – от последней ячейки к первой. После обращения к первой ячейке процедура повторяется. Считываются нули и на их место записываются единицы. После обращения к последнему адресу выполняется чтение с проверкой единиц всех ячеек ОЗУ – от первой до последней. Этот тест является модификацией теста «запись и запись/считывание вперед и назад».
Дополнительная адресация. Во все ячейки ОЗУ записывается фоновый набор единиц (нулей), затем производится считывание ячейки, начиная с первой, с последующей проверкой и записью в нее противоположной информации. Каждое второе обращение выполняется по адресу, код которого является дополнением к предыдущему. Этот тест предназначен для проверки адресных цепей, информация которых в этом тесте подвергается максимальному изменению.
Долбление. Во все ячейки ОЗУ записывается тестовая информация, после чего производится многократное считывание по каждому адресу с последующей проверкой по всем адресам. Процедура повторяется при замене информации в каждой ячейке на информацию в обратном коде. Этот тест предназначен для проверки способности ячеек выдерживать многократные обращения по считыванию.
Разрушение считыванием. В первую ячейку ОЗУ записывается, считывается и проверяется тестовое слово (все единицы). Выполняется приращение адреса и тестовое слово записывается во вторую ячейку. После этого информация из первой и второй ячеек считывается и проверяется. Процедура продолжается до тех пор, пока во все ячейки ОЗУ не будет записано тестовое слово. К нулевой ячейке производится
n обращений, к первой – (
n-1), к последней – одно. Тест «разрушение считыванием» используется для проверки взаимовлияния ячеек ОЗУ при записи в них одной и той же информации.
Бегущий. В первую ячейку записываются единицы (нули), а во все остальные – фоновые нули (единицы). Затем все адреса последовательно считываются с проверкой; последней считывается первая ячейка с последующей записью в нее нулей (единиц). Последовательность операций повторяется для второй ячейки, третьей и т.д., вплоть до последней.
Тест «бегущий» предназначен для обнаружения сбоев в ОЗУ, вызванных переходными процессам в разрядных цепях, так как перемещение 1 на фоне 0 (или наоборот) создает наихудшие условия для усилителей считывания.
Пинг-понг. В первую ячейку ОЗУ записываются единицы, а во все остальные – нули. Затем последовательно считываются и проверяются ячейки 2,1, затем 3,1; 4,1 и т.д. пока все пары переходов, включающие ячейку 1, не будут проверены. После этого в ячейку 1 записываются нули, а во вторую – единицы. В той же последовательности операции повторяются для ячейки 2 и т.д. Цикл повторяется для инверсной информации.
С помощью этого теста проверяется правильность функционирования накопительной части ОЗУ, дешифратора, а также влияние записи на сохранность информации.
Галопирующий. В первую ячейку ОЗУ записываются единицы, а в остальные – нули. Затем последовательно считываются и проверяются ячейки 2,1,2, затем 3,1,3 и т.д., пока все пары переходов, включая ячейку 1, не будут проверены. После этого в ячейку 1 записываются нули, и информация считывается. Последовательность операций повторяется для ячейки 2,3 и т.д. вплоть до последней. По эффективности этот тест эквивалентен тесту «пинг-понг».
Тест Баттерфильда. Все ячейки заполняются единицами, затем каждая третья ячейка начиная с первой заполняется нулями. Проверяется содержимое по всем адресам, затем программа дважды сдвигает слово, заполненное нулями, используя вторую и третью ячейки в качестве регистра сдвига. После третьего прохода во всех битах должны быть нули и операция повторяется с занесением единиц в каждую третью ячейку.
Система контроля неисправностей
В современной ЭВМ при управлении некоторым технологическим или экономическим причинам цена ошибки многократно возрастает. Для повышения надежности работы необходимо применять систему автоматического контроля работы и устранения ошибок. Ознакомившись с принципами контроля, покажем, какими путями реализуется система автоматического контроля в целом.
Система контроля неисправностей (СКН) ЭВМ представляет собой совокупность программных и аппаратных свойств, используемых для определения технического состояния ЭВМ и поддержания необходимого уровня ее работы.
Рассмотрим принцип действия системы контроля. Возникновение ошибки в каком-либо устройстве вызывает срабатывание системы прерываний, при этом выполнение основной программы приостанавливается и начинает работать система диагностики, которая во взаимодействии с системой контроля выполняет следующие функции:
-
выявление характера ошибки (отказ или сбой);
-
повторный пуск программы (если произошел сбой);
-
локализация места неисправности, если отказ с последующим устранением путем автоматической замены отказавшего блока на резервный, или сообщения оператору об отказе;
-
регистрация факта сбоя или отказа в памяти для дальнейшего анализа.
Основные требования к системе автоматического контроля и диагностики
Система диагностики должна удовлетворять следующим требованиям:
-
обнаруживать заданный процент неисправностей;
-
производить диагностику, локализуя место возникновения ошибки;
-
давать информацию для замены неисправного блока, в случае повторения ошибки имеет место отказ;
-
обнаруживать ошибку достаточно быстро, чтобы не дать распространиться в вычислительном процессе;
-
классифицировать ошибку (отказ, сбой, программные ошибки, ошибки памяти, ошибки процессора, ошибки оператора, ошибки в схемах контроля).
Общий алгоритм системы диагностики и контроля представлен на рис.5.1.
Рис. 5.1. Алгоритм работы системы контроля и диагностики
Схемы, осуществляющие контроль правильности ЭВМ также могут являться источниками ошибок. Их контроль осуществляется с помощью специальных приемов. Эти приемы предусматривают искусственное создание ошибок с последующим тестированием системы контроля. Как правило, искусственные ошибки сводятся к отключению разрядов передаваемых данных или неправильному формированию контрольного разряда. В первых ЭВМ для ручного устранения ошибок в зависимости от вида ошибки и квалификации персонала на устранение ошибок требовались часы и дни. В современных ЭВМ система чаще всего лишь информирует оператора о наличии факта сбоя. В более сложных случаях неисправный блок отключается до момента его замены и ремонта.
На продолжительность поиска неисправностей и ремонта оказывают влияние такие факторы как общая структура системы контроля, оснащенность ЭВМ проверочными и диагностическими тестами, наличие контрольно-измерительной и стендовой аппаратуры, наличие комплектующих, наличие документации, квалификация персонала.