Арифметическое устройство
ARITHMETIC UNIT

Изобретение относится к вычислительной технике и может использоваться в специализированных цифровых вычислительных машинах, работающих в двоичной системе счисления с числами с фиксированной запятой.
Известны арифметические устройства для сложения и умножения, содержащие регистры, комбинационный сумматор, устройство управления и устройство анализа переполнения разрядной сетки. В процессе умножения в таких устройствах для исключения потерь единиц, возникающих при переполнениях, либо осуществляют предварительный сдвиг множимого вправо на один разряд, либо применяют специальные схемы анализа и коррекции [Авт. свид. 429423 СССР, 1975].
Недостатком этого устройства является сложность проведения коррекции знака результата в случае переполнения разрядной сетки и организации арифметических сдвигов в операциях умножения и деления.
Наиболее близким техническим решением к изобретению является арифметическое устройство, содержащее первый и второй регистры и регистр результата, комбинационный сумматор [Авт. свид. 711570 СССР, 1980].
Недостатком такого устройства является неоднозначность определения переполнения при сложении и умножении.
Задачей изобретения является совершенствование арифметического устройства.
Техническим результатом является повышение достоверности определения переполнения сумматора.
Технический результат достигается тем, что в арифметическое устройство, содержащее первый и второй регистры, регистр результата, комбинационный сумматор, первый, второй, третий и четвертый элементы И, триггер, причем выход первого регистра и выход регистра результата подключены к соответствующим входам комбинационного сумматора, выход которого соединен с входом регистра результата, младший разряд которого подключен к знаковому разряду второго регистра, кроме того, первые входы первого и четвертого, второго и третьего элементов И подключены соответственно к единичному и нулевому выходам знакового разряда регистра результата, вторые входы первого и третьего, второго и четвертого элементов И соединены соответственно с нулевым и единичным выходами знакового разряда первого регистра, выходы первого и второго, третьего и четвертого элементов И подключены соответственно к установленным в единицу и нуль входам триггера, первый вход которого подключен к нулевому выходу сигнала переноса комбинационного сумматора, а выход триггера - к знаковому разряду регистра результата, дополнительно вводят два четырехвходовых элементов И-НЕ, объединенных своими выходами по схеме "монтажное ИЛИ" и связанных по выходу через введенный также дополнительно элемент НЕ со знаковым разрядом регистра результата, причем четыре входа каждого элемента И-НЕ связаны с блоками арифметического устройства, а именно с инверсным выходом триггера, со знаковым разрядом первого регистра, с цепями переполнения нулевого (знакового) и первого разрядов комбинационного сумматора.
Введение дополнительно двух элементов И-НЕ и одного элемента НЕ и их связей с другими блоками устройства позволило повысить достоверность определения переполнения сумматора. Это является новым техническим решением в технике цифровых вычислений, поскольку результаты проведенного заявителем анализа аналогов и прототипа не позволили выявить признаки, тождественные всем существенным признакам данного изобретения.
Предложенное арифметическое устройство промышленно применимо, поскольку его техническая реализация возможна с использованием типовых элементов микроэлектронной техники (интегральных логических схем).
На чертеже представлена структурная схема предлагаемого арифметического устройства, и в таблице - информация о критических примерах определения переполнения.
Арифметическое устройство содержит первый регистр 1, регистр результата 2, комбинационный сумматор 3, второй регистр 4. Причем выход первого регистра 1 и выход регистра результата 2 подключены к соответствующим входам комбинационного сумматора 3, выход которого соединен с входом регистра результата 2, младший разряд которого подключен к знаковому разряду второго регистра 4. Устройство также содержит первый 5, второй 6, третий 7 и четвертый 8 элементы И и триггер 9, причем первые входы первого 5 и четвертого 8, второго 6 и третьего 7 элементов И подключены соответственно к единичному и нулевому выходам знакового разряда регистра результата 2, вторые входы первого 5 и третьего 7, второго 6 и четвертого 8 элементов И соединены соответственно с нулевым и единичным выходами знакового разряда первого регистра 1, выходы первого 5 и второго 6, третьего 7 и четвертого 8 элементов И подключены соответственно к установочным в единицу и нуль входам триггера 9, первый вход которого подключен к нулевому выходу сигнала переноса комбинационного сумматора 3, а выход триггера 9 - к знаковому разряду регистра результата 2. Кроме того, устройство содержит два четырехвходовых элемента И-НЕ 10 и 11 и один элемент НЕ 12, причем выходы каждого из элементов И-НЕ, объединены по схеме "монтажное ИЛИ" и подключены через элемент 12 НЕ к знаковому разряду регистра результата 2, а их четыре входа подключены к инверсному выходу триггера 9, к знаковому разряду первого регистра 1, к цепям переполнения нулевого и первого разрядам комбинационного сумматора 3.
Арифметическое устройство работает следующим образом. Сигналы n0 и n1 подаются на инверсный вход каждого элемента И-НЕ в соответствии с логической формулой, которая имеет отношение к работе арифметического устройства.
где V∈{0,1} - бит переполнения,
OD∈{0,1} - логическая величина, равная "1", если знаки суммируемых величин одинаковые, и "0" - если разные, А - знак первого слагаемого,
n0, n1 - сигналы ∈{0,1} переполнения нулевого и первого разрядов комбинационного сумматора 3 соответственно.
Перед началом выполнения операции сложения в первом регистре 1 хранится одно слагаемое, в регистре результата 2 - второе, причем разрядные шины первого 1 и второго 4 регистров подключены к входным шинам комбинационного сумматора 3, выходные шины которого подключены к регистру результата 2.
Оба операнда представляют собой двоичные числа с фиксированной запятой, записанные в дополнительном коде. Для записи знака чисел в регистрах 1 и 2 и в комбинационном сумматоре 3 используется по одному знаковому разряду. Установка триггера 9 перед сложением производится по следующему правилу: если знаковые разряды регистров 1 и 2 совпадают, то триггер 9 устанавливается в нуль; если знаковые разряды регистров 1 и 2 отличаются, то триггер 9 устанавливается в единицу.
Инверсный выход триггера 9 выдает сигнал ("0" или "1"), противоположный его сигналу прямого выхода.
Если в конце сложения возникают или не возникают переносы n0 или/и n1 из нулевого или/и из первого разрядов комбинационного сумматора 3, то значение V переполнения корректируется с помощью элементов И-НЕ 10,11 и элемента НЕ 12 с учетом значений сигналов n0 и n1 (см. (1)).
В случае появления на выходе элемента НЕ 12 сигнала V=1 он посылается в арифметическое устройство для учета в ведущей программе.
При выполнении операции умножения в исходном состоянии в первом регистре 1 хранится множимое, в втором регистре 4 - множитель. Промежуточная сумма частичных произведений накапливается в регистре результата 2 и при сдвиге вправо ее младшая часть переходит в старшие разряды второго регистра 4.
Триггер 9 и элементы И-НЕ 10, 11, НЕ 12 участвуют в накоплении сумм частичных произведений в модифицированном дополнительном коде и используется для осуществления модифицированного сдвига вправо. Знак произведения вырабатывается автоматически в ходе перемножения сомножителей и произведение получается в коде, соответствующем его знаку.
Перед началом умножения обнуляется триггер 9 и регистр результата 2, содержащий частичные произведения, в каждом такте умножения анализируется младший разряд множителя. Если он равен единице, то множимое, расположенное в первом регистре 1, складывается с содержимым регистра результата 2, как при операции сложения, где накапливается сумма частичных произведений. Далее осуществляется операция сдвига.
Содержимое первого 1 и второго 4 регистров сдвигается арифметически вправо на один разряд. Циклический процесс умножения повторяется до выполнения заданного количества итераций.
После n-го сдвига, где n - число двоичных разрядов сомножителей, знаковый разряд множителя переместится в младший его разряд, по которому осуществляется корректирующий шаг.
Если младший разряд множителя равен нулю, то коррекции нет. В противном случае имеет место такая коррекция: инвертированное содержимое первого регистра 1 множимого, увеличенное на единицу, суммируется с содержимым регистра результата 2.
После окончания умножения старшие разряды произведения располагаются в регистре результата 2, младшие разряды - в старших разрядах второго регистра 4.
Благодаря введению корректирующих элементов И-НЕ и НЕ и их связям с другими блоками устройства (триггер 9, первый регистр комбинационный сумматор 3) исключены случаи недостоверности (ошибочного) определения переполнения или его отсутствия. Три такие ошибки приведены в таблице.
В первом, втором и четвертом примерах прототип выдает неверный сигнал относительно факта реального переполнения. В третьем примере ответы прототипа и заявленного устройства правильные.