Двоичные шифраторы выполняют операцию, обратную по отношению, к операции дешифратора: они преобразуют код "1 из N" в двоичный. При возбуждении одного из входов шифратора на его выходе формируется двоичный код номера возбужденной входной линии. Полный двоичный шифратор имеет 2n входов и n выходов. Приоритетные шифраторы выполняют более сложную операцию. При работе ЭВМ и в других устройствах часто решается задача определения приоритетного претендента на пользование каким-либо ресурсом. Несколько конкурентов выставляют свои запросы на обслуживание, которые не могут быть удовлетворены одновременно. Нужно выбрать того, кому предоставляется право первоочередного обслуживания. Простейший вариант решения указанной задачи — присвоение каждому источнику запросов фиксированного приоритета. Например, группа из восьми запросов (R от английского Request) формируется так, что высший приоритет имеет источник номер семь, а далее приоритет уменьшается от номера к номеру. Самый младший приоритет у нулевого источника — он будет обслуживаться только при отсутствии всех других запросов. Если имеются одновременно несколько запросов, обслуживается запрос с наибольшим номером.
Приоритетный шифратор вырабатывает на выходе двоичный номер старшего запроса.
Легко видеть, что при наличии всего одного возбужденного входа приоритетный шифратор работает так же, как и двоичный.
Поэтому в сериях элементов двоичный шифратор как самостоятельный элемент может отсутствовать. Режим его работы — частный случай работы приоритетного шифратора.
Указатели старшей единицы решают в сущности ту же задачу, что и приоритетные шифраторы, но вырабатывают результат в иной форме — в виде кода "1 из N
". Таким образом, при наличии на входах нескольких возбужденных линий (запросов) на выходе будет возбуждена лишь одна, соответствующая старшему запросу. Число входов в этом случае равно числу выходов схемы. Указатели старшей единицы применяются в устройствах нормализации чисел с плавающей точкой и т. д.
В промышленных сериях элементов имеются шифраторы приоритета для восьмиразрядных и десятиразрядных слов. Функционирование их отображается в табл. 2.2.
Таблица 2.2
EI
R7
R6
R5
R4
R3
R2
R1
R0
A2
A1
A0
G
EO
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Таблица полностью характеризует работу приоритетного шифратора при всех возможных комбинациях сигналов: El — сигнала разрешения работы данного шифратора; ЕО — сигнала, вырабатываемого на выходе данного шифратора при отсутствии запросов на его входах для разрешения работы следующего (младшего) шифратора при наращивании размерности шифраторов; G — сигнала, отмечающего наличие запросов на входе данного шифратора; — запросов на входах шифратора; A2…A0 — значений разрядов выходного двоичного кода, формирующего номер старшего запроса. Все перечисленные сигналы формируются при условии EI = 1 (работа шифратора разрешена). При EI = 0 независимо от состояний входов запросов все выходные сигналы шифратора становятся нулевыми.
Из таблицы можно получить следующие выражения для функций A2…A0, ЕО, G
Повторным применением к каждой из функций Ai (i = 2, 1, 0) известного соотношения алгебры логики можно упростить их и получить выражения
которые определяют внутреннюю структуру шифратора приоритета в его основной части.
Наращивание размерности приоритетного шифратора
Условное обозначение шифратора приоритета показано на рис. 2.7, на котором изображено наращивание числа входов запросов вдвое (от 8 до 16). При этом показаны шифраторы с инверсными входами и выходами, как это свойственно большинству серий элементов.
Шифратор 2— старший по приоритету, его работа всегда разрешена подачей нуля на вход EI2. Если на входах есть хотя бы один запрос, то разрешения на работу младшего шифратора 1 нет (Е02 = 1). Выходы шифратора 1 пассивны, т. е. имеют единичные значения. При этом элементы И-НЕ с номерами 1, 2, 3 играют роль инверторов для сигналов Ai2 (i = 0,1,2). Поэтому на выходах A2…A0 схемы в целом формируются сигналы от нуля до семи в зависимости от номера старшего запроса в шифраторе 2, что вместе с единицей на выходе Е02 дает номера от 8 до 15.
Если на входах шифратора 2 запросов нет, он разрешает работу младшего, вырабатывая сигнал Е02=0 и приводит свои выходы a2…a0 в пассивное единичное состояние. Теперь на выходы a схемы в целом передаются инвертированные значения выходов a01, a11, a21 младшего шифратора, что вместе с нулем в разряде аз соответствует номерам от нуля до семи.
Таким образом, строится схема с 16 входами запросов, причем вход имеет старший приоритет. Выход элемента 4 принимает единичное значение при наличии хотя бы одного запроса в любом из шифраторов, и может использоваться как сигнал запроса на прерывания для процессора с последующим указанием процессору номера старшего запроса.
Рис. 2.8. Схема указания старшей единицы
Указатели старшей единицы могут быть реализованы подключением двоичного дешифратора к выходу шифратора приоритета, но эту же задачу можно решить с помощью специальной цепочечной схемы (рис. 2.8) путем последовательного опроса разрядов, начиная со старшего, и прекращения дальнейшего опроса при выявлении первой же единицы.
В этой схеме единичный сигнал опроса, подаваемый со стороны старшего разряда an-1 может распространяться вправо только до первого разряда, содержащего единицу. Разряд, содержащий ноль, пропускает сигнал опроса, на его выходе остается нулевой уровень. На выходе единичного разряда конъюнктор блокируется нулевым значением инвертированной переменной, и дальнейшее распространение переноса прекращается. Одновременно на выходе разряда возникает единичный сигнал.