Устройство для выполнения арифметических и логических операций
Иллюстрации
Показать всеРеферат
ОПИСАНИЕ
ИЗОБРЕТЕНИЯ
Союз Советских
Социалистических
Республик (1Ц 538362 (61) Дополнительное к авт. свид-ву (22) Заявлено 08.05.75 (21) 2131669/24 с присоединением заявки №вЂ” (23) Приоритет— (43) Опубликовано05.12.76.Бюллетень № 45 (45) Дата опубликования описания 31.03.77 (51) M. Кл,е
406 F 7/38
Государственный комнтет
Совета Мнннстров СССР па делам нзооретеннй н открытий (5З) УДК 681.325 5 (088.8) (72) Автор изобретения
И. П. Селезнев (71) Заявитель (54) УСТРОЙСТВО ДЛЯ ВЫПОЛНЕНИЯ АРИФМЕТИЧЕСКИХ
И ЛОГИЧЕСКИХ ОПЕРАЦИЙ
Изобретение относится к области вычислительной техники и может быть использовано при построении быстродействующих процессоров, ориентированных на обработку информационных полей переменной длины. 5
Для выполнения арифметических и логических операций широко используются известные арифметико-логические устройства, являющиеся основными узлами современных
UBN. Такие устройства обеспечивают выпол-1о нение основных арифметических и логических операций, а также операций сдвига. Арифметико-логические устройства содержат, как правило, блок логических операций, сумматор и сдвигатель. Информация на входы 15 устройства поступает с регистров. В регистр же заносится результат операции.
Такие устройства обычно не реализУют операции над полями переменной длины jl).
Прототипом изобретения является устройство для выполнения арифметических и логи ческих операций, содержащее сумматор, блок логических операций, выходной коммутатор, сдвигатель, преобразователь кода и блок и управления. Выход выходного коммутатора является выходом устройства, первый вход этого коммутатора соединен с выходом блока логических операций и первым входом сумматора, а второй — с первым выходом сумматора. Вход преобразователя кода подключен к первому входу устройства, а выход соединен со вторым входом сумматора и первым входом блока логических операций .
Первый второй и третий выходы блока управления соединены соответственно с управляющими входами сумматора, блока логических операций и преобразователя кода.
Четвертый и пятый выходы блока управления соединены с управляющими входами выходного коммутатора. Первый вход блока управления соединен со вторым входом устройства, а второй — со вторым выходом сумматора 2 .
При выполнении операций над информационными полями одинаковой произвольной длины, расположенными в двух (или одном) машинных словах, в этом устройстве осуществляется многократная передача информации по цепи, содержащей сумматор и сдви538362 гатель, что обуславливает в этом случае низкое быстродействие устройства.
Целью изобретения является повышение быстродействия устройства.
Эта цель достигается тем, что в пред- 5 ложенное устройство введены блок формирования маски, дополнительный сумматор и вычитатель, первые входы которых объединены и подключены к третьему входу устройства, а вторые входы подключены соот- 30 ветственно к четвертому и пятому входам устройства. Управляющие входы вычитателя и блока формирования маски связаны с пятым и шестым выходами блока управления. Выход дополнительного сумматора под- и ключен ко второму входу блока формирования маски, выход которого подключен ко второму входу блока логических операций и третьему входу выходного коммутатора, четвертый вход которого соединен с выхо- ®0 дом преобразователя кода. Выход вычитателя соединен с первым входом сдвигателя, второй вход которого подключен к шес тому входу устройства, а выход соединен с третьим входом блока логических операций и пятым входом выходного коммутато» ра.
Указанная цель достигается также тем, что в выходном коммутаторе каждый разряд состоит из узла образования логических функций и двух коммутирующих узлов . Входы узла образования логических функций подключены к четвертому и пятому входам выходного коммутатора, управляющий входк первому управляющему входу выходного
35 коммутатора, а выход — к первому входу первого коммутирующего узла, ко второму входу которого подключен выход второго коммутирующего узла, входы которого сое
40 динены с первым и вторым входами выходного коммутатора. Управляющие входы коммутирующих узлов подключены к третьему и второму управляющему входам выходного коммутатора, а выход первого коммутирующего узла подключен к выходу выходного коммутатора.
На фиг. 1 показана блок-схема устройства; на фиг. 2 блок-схема одного разряда выходного коммутатора; фиг. 3 поясняет принпнп работы устройства.
Устройство для выполнения арифмети-ческих и логических операций содержит сумматор 1, блок логических операций 2, выходной коммутатор 3, сдвигатель 4 комбинационного типа, преобразователь кода 5, блок управления 6, блок формирования маски 7, дополнительный сумматор 8 и вычитатель 9. Каждый разряд 1О выходного коммутатора 3 содержит узел образования логических функций 11 и ком мутирующие узлы 12 и 13.
Предлагаемое устройство обеспечивает выполнение арифметических и логических операций над двумя информационными полями, расположенными в словах А „ и А
Разрядность слов rn= 2. Информационное и поле в слове А задается двумя параметр рами: базой b определяющей положение первого элемента (бита) поля, и длиной, соответствующей числу элементов в поле, уменьшенному на единицу (фиг. 3).
Положение поля в слове А задается базой b z аналогично. Параметр 0 одинаков для обоих полей. Сдвигатель 4 обеспечивает быстрый сдвиг числа А с целью выравнивания положения полей в словах
А и А, Сдвигатель 4 осуществляет цик2 лический сдвиг слов только влево. Если
Ь1 Ь, то величина сдвига С = Ь вЂ” Ь °
Если Ь с b, то следует произвести сдвиг
I вправо на величину C =Ь -b <, что эквивалентно сдвигу влево на величину с=пав
-(h -b<)=m+(h,— Ьд).На выходе n - разрядного вычитателя 9 формируются разность (Ь =Ь )либо дополнительный код числа Ь,.
Блок формирования маски 7 обеспечивает выработку rn — - разрядного двоичного слова N, содержащего единственную группу символов "1", в которой отсутствуют символы "0" (например, слово 00111100).
Положение группы символов 1 в маске определяется адресами начальной (O н ) и конечной (a„) единиц (отсчет позиций производится слева направо). Значения они а (O< а,, т- 1) поступают на вхады блока формирования маски 7 со входа устройства и с выхода и - разрядного дополнительного сумматора 8, соответственно. На вход этого сумматора подают ся параметры b u R . Преобразователь кода 5 обеспечивает формирование на своем выходе прямого или обратного кода чисКо входам блока логических операций
2 подключены выходы блока формирования маски 7, сдвигателя 4 и преобразователя кода 5. Значения сигнала h.„ на выходе
В (. - го разряда блока логических операций 2 формируются в соответствии с одной из шестнадцати логических функций от apt И 1 гументов 4. и А „(д, - сигнал на выхои де (, -го разряда сдвигателя 4, 6. „ - сигнал на выходе ь — го разряда преобразователя кода 5) при единичном значении сигналов на выходе ь -ro pa зряда блока формирования маски 7 (P < = 1). Вид логической функции определяется сигналами с блока управления 6. Если JU < = О, то на
538362 выходе i -го разряда блока логических операций 2 всегда формируется сигнал
"1" (h. „ = 1). Выход блока логических операций 2 подсоединен к первому входу сумматора 1, на второй вход которого 5 подается число с выхода преобразователя кода 5, С блока управления 6 возможна подача сигнала Р переноса в младший разряд сумматора 1. В блок управления 6 передается сигнал переноса из старшего сумма- И» тора 1.
Выходной коммутатор 3 обеспечивает формирование на выходе устройства результата Р выполения операций. На входы каждого разряда 10 выходного коммутатора 3 1Ь
И поступают сигналы»б»„-,d „,d;, Л; и 0 „ (выходной сигнал L — го разряда сумматора 1). На выходе узла образования логических функций 11 вырабатываются сигналы, соответствующие определенной логичес- Ю
I II кой функции от аргументов 6 „и А „(в частном случае это могут быть логические константы "О" или "1"). Узел образования логических функций 11 управляется сигналом Р с блока управления 6, С блока управления 6 поступает также сигнал управления первым коммутирующим узлом
12, обеспечивающим передачу на свой выход значения либо Д б, либо ». б . Второй коммутирующий узел 13 управляется сигналом)Об и обеспечивает передачу на выход узла (и устройства) значения сигнала либо с выхода узла образования логических функций 11 (при |U = О), либо с выхода
3 первого коммутирующего узла 12 (при
Р =1).
При реализации различных операций устройство работает следующим образом.
l. Логические операции над содержимым полей (фиг. 3), 40
Соответствующий код операций КО поступает на вход блока управления 6. На входы сдвигателя 4 и преобразователя 6 кода поступают слова А » и А, а на входы дополнительного сумматора 8 и вычитателя 9 — значения параметров Ь», b и (на фиг. 3 обрабатываемые поля слов
А» и А> обозначены соответственно через
А" и А ", а остальные поля — через A g)
А„ ", и А, А ) . .На входах блока формирования маски 7 устанавливаются значения
QH — Q и С» = b + P обеспечивающие вы»
2 работку маски М, положение группы единиц в которой соответствует положению поля Я, Вычитатель 9 формирует велит чину с, обеспечивающую требуемый сдвиг слова А„. Таким образом, на входы блока логических операций 2 поступают двоичные слова, положение обрабатываемых полей в которых выравнено. Сигналы с блока управления 6 обеспечивают формирование на тех выходах блока логических операций
2, которые соответствуют положению
II поля А (здесь|б»;= 1), результата выполнения заданной логической операции (м ). На остальных выходах блока логических операций 2 вырабатываются сигналы "1" (здесь/б»б = О). Первые коммутирующие узлы 12 всех разрядов 10 выходного коммутатора 3 передают на свои выходы сигналы h, с выходов блока погиб ческих операций 2. Узлы образования логических функций 1 1 всех разрядов реализуют логическую функцию, задаваемую блоком управления 6. Для тех разрядов 10, для которых »б»б = 1, на выход узла (устройства) передается сигнал с выхода первого коммутирующего узла 12 (в данном случае 1б). Для остальных узлов выходной сигнал . определяется состоянием выхо». да узла образования логических функций
11. В результате на выходе устройства формируется слово Р, содержащее поле результата выполнения заданной логической операции. Значения остальных разрядов этого слова формируются в соответствии с другой логической функцией двух аргументов (фиг. 3 соответствует случаю, когда в указанные разряда слова Р передаются значения соответствующих разрядов числа Ag).
При выполнении логических операций над полноразрядными словами на входы устройства подаются следующие значения параметров:
Оз » 1 °
2, Операция " Сложение полей".
Дополнительный сумматор 8, вычитатель 9, блок формирования маски 7 и сдвигатель 4 работают так же, как в предыдущем случае. Преобразователь кода 5 обеспечивает передачу на вход блока логических операций 2 прямого кода слова
А . Значения сигналов на выходах тех разрядов блока логических операций 2, для которых p „. = 1, определяются логической функцией неравнозначности (A.. =
-И - И б
= 4.. 4.. а(о, < „- ) . .На остальных выходах
». б б устанавливается сигнал "1". Информация с выходов блока логических операций 2 поступает в сумматор 1 и используется для формирования сигналов переноса и суммы причем сигнал переноса
П из б -го разряда сумматора форми». руется в соответствии с выражениями — И
П-= »б. А- V Л- П ° б I. б б-» б=» 2,,... »т — » (1)
По бо » о бор
5383
Значение сигнала Р задается блоком управления 6. При выполнении рассматриваемой операции Р = О. Из выражений (1) следует, что в младших разрядах сумматора
1, соответствующих полю А (см. фиг. 3), ф сигналы переноса отсутствуют, так как
А1= 1 и Р = О. Зто обеспечивает нормаль ное выполнение операции сложения в разрядах сумматора, соответствующих полю А и (здесь А. =K. cAÀ" -„чб. .с ") . Если возникает 10 ! сигнал переноса из разряда сумматора, соответствующего положению старшего разряда и поля А, то он распространяется до выхода переноса из старшего разряда сумматора, так как для разрядов сумматора, соответствующих полю А, Л = 1. Первые коммутирующие узлы 12 всех разрядов 10 выходного коммутатора 3 передают на свои выходы сигналы 6 „c выходов сумматора
1. Блок управления 6 задает определенную логическую функцию, реализуемую управляемыми узлами образования логических функций 11 всех разрядов 10. Передача информации на выходы вторых коммутирующих узлов 13 разрядов 10 выходного ком- мутатора 3 осуществляется так же, как и при выполнении логических операций. При сложении полноразрядных слов b,= Ь =О, It-- rn — 1.
3. Операция "Вычитание полей".
Зта операция выполняется так же, как операция "Сложение полей", с той разницей, что на выходе преобразователя кода
5 формируется обратный код числа А, а задаваемый блоком управления 6 сигнал
Р = 1, В соответствии с выражениями (1) в рассматриваемом случае формируется сигнал переноса из разряда сумматора 1, соответствующего положению старшего раэttt 40 ряда поля А (для всех разрядов этого поляР- 1). Таким образом, в разрядах
l. lI сумматора 1, соответствующих полю А,, производится сложение полей в дополнит льном коде, т. е. вычитание.
4. Операция "Сдвинуть логически влево на k разрядов».
Соответствующий код операции подается в блок управления 6, на вход сдвигателя
4 поступает сдвигаемое число А . Параметры имеют следующие значения: Ь, = К, Ь = О, значение E соответствует обратному коду числа К(ГК3 < = m -1 в k ). оЮр.
Устройство работает так же, как при выпол» ненни логических операций над содержимым у полей, причем на выходы тех разрядов блока логических операций 2, для которых
P .„= 1, передаются соответствующие зна« чения А i с выхода сдвигателя 4, а на выходах узлов образования логических функ- ®
62
8 ций 11 всех разрядов 10 выходного коммутатора 3 устанавливаются значения О .
В рассматриваемом случае с=Ь вЂ” Ь =К, 1 а„=О, а„= Ь + E = rn-1-К . Следовательно, в результате выполнения операции слово А 1 сдвигается влево на величину k,, и bk младших разрядов занесены нули.
5. Операция "Сдвинуть логически вправо на k разрядов".
В данном случае параметры имеют следующие значения:b,= О, Ь =К,О=ГК3,@,, Устройство работает так же, как и при выполнении предыдущей операции, причем о =К а =Ь +R=k+rn-)-К=щ-<, а величин > к на с соответствует дополнительному коду k.
6. Операция "Сдвинуть арифметически вправо на IC разрядов", Операция выполняется так же, как операция "Сдвинуть логически вправо íà k разрядов," с той разницей, что на выходы узлов образования логических функций 11 всех разрядов 10 выходного коммутатора
3 из блока управления 6 передается значение знакового разряда сумматора.
7. Операция "Сдвинуть циклически влево на К разрядов".
Устройство работает так же, как при выполнении операции "Сдвинуть логически влево на k разрядов", причем входные параметры имеют следующие значения: Ь = 1 х
b = О, = 1т — 1. Следовательно, маска М содержит единицы во всех разрядах, что обеспечивает передачу на выход устройства слова А„, сдвинутого влево на
К разрядов.
8. Операция Сдвинуть циклически вправо на k разрядов .
Устройство работает так же, как при выполнении предыдущей операции, однако вычитатель 9 работает в режиме, когда на его выходе формируется дополнительный код числа b, (К )
9. Операция "Отбросить k разрядов справа".
На входы устройства поступают соответствующий код операции, число А, параметры b = b = О, 6=Lkl з оОР
В дальнейшем устройство работает так же, как при выполнении операции "Сдвинуть логически влево íà k разрядов . Очевидно, что сдвиг слова А „ в данном случае отсутствует, так как с=Ь - b = О. т
1 О. Операция "Отбросить К разрядов слева".
В данном случае параметры имеют следующие значения: Ь =Ь = к = К . УсФ
1 2 1 обр ройство работает так же, как при выполне538362 нии операции "Сдвинуть логически вправо ф на k разрядов". Сдвиг слова А, отсутст- т вует, так как с=Ь,— Ь = О. о
Устройство представляет собой комбина- д ционную логическую схему, вследствие чего с время выполнения выше перечисленных опе- д раций определяется максимальным числом т логических уровней в цепях, расположен- н ных между входами и выходами устрой- р ства. Это обеспечивает увеличение скорости )r) р выполнения операций над полями перемен- м ной длины в 5-10 раз по сравнению со к случаем, когда эти операции реализуются на основе программных либо микропрограм- т мных средств. Дополнительные затраты 15 с оборудования составляют единицы процен- в тов от общих аппаратурных средств процес- с сора. ч
Формула изобретения
1. Устройство для выполнения арифметических и логических операций, содержащее сумматор, блок логических операций, выходной коммутатор, сдвигатель комбинационного типа, преобразователь кода и блок управления, причем выход выходного коммутатора является выходом устройства, первый вход выходного коммутатора соединен с выходом блока логических операций и первым входом сумматора, а второй вход соединен с первым выходом сумматора, вход преобразователя кода подключен к первому входу устройства, а выход соединен со вторым входом сумматора и первым входом блока логических операций, первый, второй и третий выходы блока управления соединены соответственно с управляющими входами сумматора, блока логических операций и преобразователя кода, четвертый и пятый выходы блока управления соединены с управляющими входами выходного коммутатора, первый вход блока управления соединен со вторым входом устройст45 ва, а второй вход подключен ко второму выходу сумматора, о т л и ч а ю щ е— е с я тем, что, с целью повышения быстродействия устройства, в него введены блок
10 ормирования маски, дополнительный суммаор и вычитатель, первые входы которых бъединены и подключены к третьему вхоу устройства, а вторые входы подключены оответственно к четвертому и пятому вхоам устройствам, управляющие входы вычиателя и блока формирования маски связаы с пятым и шестым выходами блока упавления, выход дополнительного сумматоа подключен ко второму входу блока форирования маски, выход которого подключен о второму входу блока логических операций и третьему входу выходного коммутаора, четвертый вход которого соединен выходом преобразователя кода; выход
ычитателя соединен с первым входом двигателя, второй вход которого подклюен к шестому входу устройства, а выход соединен с третьим входом блока логических операций и пятым входом выходного коммутатора.
2. Устройство по п. 1, о т л и ч а юш е е с я тем, что в выходном коммутаторе каждый разряд состоит из узла образования логических функций и двух коммутирующих узлов, причем входы узла образования логических функций подключ ны к четвертому и пятому входам выходного коммутатора, управляющий вход - к первому управляющему входу выходного коммутатора, а выход - к первому входу первого коммутирующего узла, ко второму входу которого подключен выход второго коммутирующего узла, входы которого соединены с первым и вторым входа« ми выходного коммутатора; управляющие входы коммутирующих узлов подключены к третьему и второму управляющему входам выходного коммутатора, а выход первого коммутирующего узла подключен к выходу выходного коммутатора.
Источники информации, принятые во внимание при экспертизе:
1. Патент США № 3571803, кл. 340172Л, опубл. 23.03.71 r.
2. The J LL J AC,— 1× ргосеьь ng е еme nt
3ЕЕЕ Тгansactions on Сотрц егэ 1969, № 9 (прототип).
538362 бр А
/и =2П
I A +Ay l
Составитель В. Березкин
Редактор Л. Утехина Техред О. Луговая Корректор И, Гоксич
Филиал ППП ."Патент", г. Ужгород, ул, Проектная, 4
А2
Заказ 5721/29 Тираж 864
ЦНИИ ПИ Государственного комитета по делам изобретений и
113035, Москва, Ж-35, Раушская
Подписное
Совета Министров СССР открытий наб., д. 4/5