Сложность ЭВМ и других ЦУ определяет важность операций контроля и диагностики их функционирования. В некоторых случаях контроль жизненно важен (авиационные приборы, управление мощными энергетическими установками, мониторинг пациентов в клиниках и др.).
Причинами нарушения нормальной работы ЦУ могут быть отказы (т. е. нарушения из-за возникших неисправностей, имеющих постоянный характер) и сбои (т. е. нарушения из-за проявлений неблагоприятных факторов, в частности, помех, которые в дальнейшем могут и не проявиться). Независимо от этого дальше будем говорить об ошибках функционирования, поскольку для рассматриваемых далее вопросов конкретный характер ошибок несущественен.
Цели и задачи контроля, диагностики и исправления ошибок в ЦУ могут быть разными.
Можно ставить задачу предотвращения ошибок в работе ЦУ. Для этого необходимы такие меры, как применение высококачественных элементов схем, стабилизация условий окружающей среды и т. п. Но даже при всех стараниях вряд ли возможно полностью избавиться от ошибок. Имея в виду неизбежность возникновения ошибок, следует позаботиться об их выявлении. Задачи выявления ошибок решаются разными методами. Можно, например, воспользоваться дублированием ЦУ и сравнением результатов работы двух идентичных устройств. Несовпадение результатов в этом случае рассматривается как признак ошибки (хотя вероятность того, что ошибка появилась в контролируемом устройстве, а не в контролирующем равна всего 50%). Для выявления ошибок используются специальные коды, более сложные, чем двоичные.
И, наконец, можно ставить задачи маскирования (исправления) ошибок. В этом случае наличие ошибок определенного типа и количества не нарушает работу устройства, поскольку их влияние устраняется автоматически. В этой области используется, например, троекратное резервирование устройств с выработкой результата путем "голосования" с помощью мажоритарных элементов. Эти элементы вырабатывают выходные данные "по большинству" входных. Если из трех устройств одно стало работать неправильно, это не скажется на результате. Только ошибка в двух из трех каналов проявляется в результате.
Отметим, что добавление к функциям устройств функций контроля всегда связано с избыточностью — платой за новые возможности будут дополнительные аппаратные или временные затраты.
Вводимая избыточность — это цена контроля. В частности, метод дублирования ценен своей универсальностью, но дорог, для него избыточность составляет около 100%.
В этом параграфе рассмотрены очень ограниченные вопросы контроля ЦУ, которому посвящаются специальные труды. Здесь затронуты темы, связанные с пониманием работы ИС, выпускаемых для использования в системах контроля. К таким схемам относятся мажоритарные элементы, схемы контроля по модулю 2 и схемы кодирования-декодирования для кодов Хемминга.
Мажоритарные элементы
Задача мажоритарного элемента — произвести "голосование" и передать на выход величину, соответствующую большинству из входных. Ясно, что мажоритарный элемент может иметь только нечетное число входов. Практически выпускаемые элементы имеют по три входа или по пять входов. Функционирование мажоритарного элемента, на входы которого поступают величины F1, F2, и F3 и по результатам голосования вырабатывается выходная величина F, представлено в табл. 2.8. Если имеется в виду контроль многоразрядных слов, то в каждом разряде ставится элемент рассматриваемого типа.
Таблица 2.8
F1 F2 F3
F
a1 a0
0 0 0
0 0
0 0 1
1 1
0 1 0
1 0
0 1 1
0 1
1 0 0
0 1
1 0 1
1 0
1 1 0
1 1
1 1 1
0 0
Кроме выхода F, в таблице даны и выходы a1, а0 — старший и младший разряды двухразрядного кода, указывающего номер отказавшего канала (рис. 2.19).
Из таблицы легко получить функции, которые после несложных преобразований приводятся к следующим:
Рис. 2.19. Схема голосования с мажоритарным элементом
В схемах типа рис. 2.19 от мажоритарного элемента требуется особенно высокая надежность, т. к. его отказ делает бесполезной всю схему резервирования.
Контроль по модулю 2
Контроль правильности передач и хранения данных — важное условие нормальной работы ЦУ. В этой области простейшим и широко применяемым методом является контроль по модулю 2. Приступая к ознакомлению с этим методом, следует остановиться на некоторых понятиях из теории построения помехоустойчивых кодов. Кодовая комбинация — набор из символов принятого алфавита. Код — совокупность кодовых комбинаций, используемых для отображения информации. Кодовое расстояние между двумя кодовыми комбинациями — число разрядов, в которых эти комбинации отличаются друг от друга. Минимальное кодовое расстояние — минимальное кодовое расстояние для любой пары комбинаций, входящих в данный код. Кратностью ошибки называют число ошибок в данном слове (число неверных разрядов).
Из теории кодирования известны условия обнаружения и исправления ошибок при использовании кодов:
где dmin — минимальное кодовое расстояние кода; гобн и rиcnp — кратность обнаруживаемых и исправляемых ошибок соответственно.
Существует также понятие веса комбинации, под которым понимается число единиц в данной комбинации.
Для двоичного кода минимальное кодовое расстояние dmin=1, поэтому он не обладает возможностями какого-либо контроля производимых над ним действий. Чтобы получить возможность обнаруживать хотя бы ошибки единичной кратности, нужно увеличить минимальное кодовое расстояние на 1. Это и сделано для кода контроля по модулю 2 (контроля по четности/нечетности).
При этом способе контроля каждое слово дополняется контрольным разрядом, значение которого подбирается так, чтобы сделать четным (нечетным) вес каждой кодовой, комбинации. При одиночной ошибке в кодовой комбинации четность (нечетность) ее веса меняется, а такая комбинация не принадлежит к данному коду, что и обнаруживается схемами контроля. При двойной ошибке четность (нечетность) комбинации не нарушается — такая ошибка не обнаруживается. Легко видеть, что у кода с контрольным разрядом dmin=2. Хотя обнаруживаются ошибки не только единичной, но вообще нечетной кратности, на величину dmin это не влияет.
При контроле по четности вес кодовых комбинаций делают четным, при контроле по нечетности — нечетным. Логические возможности обоих вариантов абсолютно идентичны. В зависимости от технической реализации каналов передачи данных, может проявиться предпочтительность того или иного варианта, поскольку один из вариантов может позволить отличать обрыв всех линий связи от передачи нулевого слова, а другой — нет.
Значения контрольного разряда р при контроле по четности (рч) и нечетности (рн) приведены для четырехразрядного информационного слова в табл. 2.9.
Таблица 2.9
a3 a2 a1 a0
Рч
рн
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
1 1 1 1
После передачи слова или считывания его из памяти вновь производится сложение разрядов кодовой комбинации по модулю 2 (свертка по модулю 2) и проверяется, сохранилась ли четность (нечетность) веса принятой комбинации. Если четность (нечетность) веса комбинации изменилась, фиксируется ошибка операции.
Из приведенного материала следует, что контроль по модулю 2 эффективен там, где вероятность единичной ошибки много больше, чем вероятность двойной (или вообще групповой).
В частности, для полупроводниковой основной памяти компьютеров такая ситуация справедлива, т. к. каждый бит слова хранится в своей собственной ячейке, и наиболее вероятны единичные ошибки. А для памяти на магнитных носителях информации (диски, ленты) дефекты таковы, что обычно затрагивают площадь, на которой размещено несколько бит данных, поэтому для этой памяти контроль по модулю 2 неэффективен.
Схемы свертки
Контроль по модулю 2 реализуется с помощью схем свертки. Для практики типична многоярусная схема свертки пирамидального типа (рис. 2.20, a).
На рис. 2.20, а показана схема свертки байта. Для оценки аппаратной сложности и быстродействия подобных схем при разрядности свертываемого слова 2n (n — произвольное целое число1 легко получить соотношение:
где Млэ — число логических элементов в схеме; L — ее логическая глубина.
Схемотехника сейчас сориентирована главным образом на работу с параллельными данными, однако не исключены ситуации обработки последовательных данных, когда слова передаются по одной линии последовательно разряд за разрядом. Для таких случаев целесообразно применять схему свертки (рис. 2.20, б), которая выдает результат всего через одну задержку после поступления последнего разряда а/у.
Примером ИС свертки по модулю 2 может служить микросхема ИП5 серии КР1533 (рис. 2.21, а). Схема имеет 9 входов, что допускает свертку байта с девятым контрольным разрядом. Двумя выходами схемы являются Е (Even) и О (Odd). Если вес входной комбинации четный, то Е = 1 и О = 0, и наоборот, если вес нечетный.
Рис. 2.20. Схемы свертки пирамидального (а) и последовательного (б) типов
Рис. 2.21. Микросхема ИП5 (а, б) и ее применение в схеме контроля (в)
Схемотехнически ИС КР1533ИП5 представляет собою пирамидальную структуру из трехвходовых элементов типа четность/нечетность (рис. 2.21, б).
Передача данных с контролем по модулю 2
Передача данных или их запись/считывание (если речь идет о памяти) с контролем показаны на рис. 2.21, в. Входные данные обозначены через D, на выходе из канала связи или памяти данные обозначены через D, поскольку вследствие ошибок они могут измениться.
Контроль по модулю 2 применим не только для операций передачи и хранения слов, но и для некоторых более сложных операций. В этих случаях недостаточно просто добавить к информационному слову контрольный разряд, а требуются более развитые операции.