Рис. 1.7
Применяют еще один способ контроля, использующий искусственно введенную в узлы и устройства аппаратурную избыточность, что приводит к возникновению большого количества таких состояний, которые при нормальной работе не используются (запрещенные). Структура устройства (узла) выбирается так, чтобы при появлении ошибок с большей вероятностью происходил переход в запрещенные состояния. Для определения факта попадания устройства в одно из запрещенных состояний должен быть предусмотрен отдельный узел (рис. 1.8). Аналогичную проверку можно осуществить как по запрещенным выходным словам, так и по запрещенным переходам.
Рис. 1.8
Несколько в стороне по своим принципам стоит аппаратурно-микропрограммный (или аппаратурно-микрооперационный) контроль. Суть его заключается в том, что в отдельные временные интервалы, когда узел (устройство) простаивает, производится проверка работоспособности этого узла по заранее составленной или формируемой в процессе контроля программе. Следовательно, собственно контроль здесь осуществляется программным способом. Задача контрольной аппаратуры состоит в обнаружении моментов простоя аппаратуры, подаче на вход узла контролирующей последовательности слов (или формирование этой последовательности), переключении узла из режима контроля в режим нормальной работы. Этот вид контроля требует небольшого количества добавочной аппаратуры, однако он не позволяет контролировать процесс переработки информации. С его помощью можно проверить лишь работоспособность аппаратуры на момент контроля.
Структура контрольных устройств и эффективность аппаратурного контроля зависят от большого количества факторов, и, в первую очередь, от способа кодирования входных слов, как основного, так и контрольного автоматов. Поэтому, рассматривая ниже различные варианты аппаратурного контроля, будем начинать изложение с описания способов кодирования входных слов автоматов А и В.
Числовой аппаратурный контроль по модулю
Принципы числового аппаратурного контроля по модулю.
Рассмотрим способы кодирования информации при числовом аппаратурном контроле по модулю.
Любое целое число можно представить в виде:
A = qa + ra,
где A, q, а и rа — целые числа;
q — модуль;
a=A/q —наибольшая целая часть частного;
rа — остаток (вычет) от деления числа А на модуль q.
Остаток rа для различных чисел может принимать значения ra=0, 1, 2,...,q-l. Таким образом, каждому целому числу А можно поставить в соответствие остаток rа, полученный в результате деления этого числа на некоторый модуль q. Это соответствие записывается в виде:
А = ra mod q
Читается: число А сравнимо с остатком rа по модулю q.
С каждым остатком по модулю q сравнимо некоторое множество чисел.- Все они называются сравнимыми между собой по модулю q и составляют остаточный класс чисел, сравнимых по модулю q. Очевидно, количество остаточных классов для каждого модуля равно q-1. Разбив все кодовые слова на классы, можно параллельно с основной операцией в контролируемом устройстве выполнять в контролирующем устройстве аналогичную операцию над их остатками. Результаты, полученные в этих устройствах, будут также принадлежать к одному классу.
Действительно, сумма чисел сравнима по модулю q с суммой остатков данных чисел по этому же модулю, т. е.
,а произведение чисел сравнимо по модулю q с произведением остатков этих чисел по этому же модулю, т. е.
Приведенные соотношения лежат в основе числового контроля по модулю.
Укажем теперь последовательность выполнения контрольных операций при сложении и умножении (рис. 1.9).
Рис. 1.9
От кодовых слов, представляющих числа А и В, образуются остатки rа и rь по выбранному модулю контроля q.
Процесс образования остатков носит название свертки числа, а соответствующий узел называется узлом свертки.
Параллельно с основной операцией (обозначим ее *) над словами А и В в контролирующем устройстве выполняется аналогичная операция над остатками rа и rь. Затем результат операции С сворачивается и величина rс сравнивается с результатом r'с , полученным в контрольном устройстве. Совпадение rс и r'ссвидетельствует о правильном выполнении операции.
Из самого принципа контроля следует, что его наиболее целесообразно применять в устройствах, перерабатывающих цифровую информацию. Числовой контроль по модулю хорошо приспособлен к проверке правильности выполнения арифметических операций (сложение, вычитание, умножение), а с использованием искусственных приемов он может применяться для контроля и других операций. С его помощью можно также контролировать правильность хранения и пересылки информации.
Объектами контроля являются сумматоры, счетчики, сдвигатели, арифметические устройства и т. д. Контроль производится путем сопоставления (по модулю) выходных слов контролируемого и контролирующего узлов.
Во многих случаях, в частности в ЭВМ, организуется сквозной контроль по модулю. Каждое кодовое слово содержит дополнительные разряды, в которые заблаговременно записывается контрольная характеристика, представляющая собой закодированный остаток по выбранному модулю контроля. В этом случае непосредственно перед выполнением операции не потребуется формировать остатки rа и rь и время выполнения контрольных операций сократится.
Нулевой остаток всегда сравним с самим модулем, т. е.
.Этот факт можно использовать для повышения эффективности контроля. Если в качестве нулевого остатка всегда выбирать только q, то наличие нуля в контрольных разрядах будет свидетельствовать о возникновении ошибки, что может быть зафиксировано специальным узлом анализа.
Таким образом, в состав контролирующего устройства должны входить специфические узлы, предназначенные для получения контрольных характеристик и выполнения операций над ними.
Узлы свертки, сумматоры и умножители по модулю.
Узлы свертки предназначены для получения остатка от деления числа на модуль контроля q. Эта операция выполняется суммированием цифр разрядов числа по модулю q. Поясним, почему это возможно.
Представим двоичное число
в виде: .Разделив A на q, получим:
.Так как для получения остатка все операции в этом выражении выполняются по модулю q, то сомножители 2i/q можно заменить соответствующими остатками ri , которые называются весовыми коэффициентами. Тогда остаток ra можно вычислить по формуле:
.Следовательно, процесс получения остатка числа по модулю q сводится к суммированию по модулю q содержимого всех разрядов числа с учетом весовых коэффициентов. Значения весовых коэффициентов ri легко определяются делением 2i/q.
Весовые коэффициенты являются периодической функцией номера разряда. Это позволяет упростить операцию свертки, так как она разбивается на ряд однотипных действий. Особенно просто свертка осуществляется при модулях 3, 7, 15, ..., так как значения весовых коэффициентов внутри периода (по группам) совпадают с весами разрядов числа, записанного в двоичной системе счисления.
Существует много разновидностей узлов свертки. Рассмотрим наиболее характерные из них.
Последовательная схема свертки (рис. 1.10) содержит один одноразрядный сумматор и два регистра со сдвигом: РгА — для хранения свертываемого числа А и Ргrа — для хранения промежуточных и окончательных результатов.
Рис. 1.10
Операция свертки здесь производится путем последовательного суммирования разрядов числа А с содержимым регистра Ргrа. Перенос, возникающий при суммировании старшего разряда Ргrа, через элемент задержки поступает в младший разряд. Схема проста и требует малого количества оборудования, которое практически не зависит от величины модуля. Недостаток ее состоит в большом времени сворачивания.
Параллельная (пирамидальная) схема свертки, построенная на одноразрядных сумматорах, имеет многоярусную структуру. В каждом ярусе отдельные сумматоры суммируют цифры сворачиваемого числа с одинаковым весом. Достоинством схемы является однотипность ее элементов и малое время выполнения операции сворачивания. Недостаток - большое количество оборудования.
Возможно использование комбинированных схем свертки, когда на параллельный малоразрядный сумматор последовательно подаются группы цифр сворачиваемого числа. По количеству оборудования и времени сворачивания такая схема занимает промежуточное положение между двумя предыдущими.