арифметический вычислитель
Классы МПК: | G06F7/57 арифметико-логические устройства (ALU), те оборудование или устройства для выполнения двух или более операций, относящихся к группам 7/483 G06F7/483 для вычислений над числами, представленными нелинейной комбинацией машинных чисел, например рациональными числами, системами с логарифмами, числами с плавающей запятой |
Автор(ы): | Шевелев Сергей Степанович (RU) |
Патентообладатель(и): | Государственное образовательное учреждение высшего профессионального образования Курский государственный технический университет (RU) |
Приоритеты: |
подача заявки:
2004-12-14 публикация патента:
27.01.2007 |
Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано для синтеза арифметико-логических устройств, для создания быстродействующих и производительных цифровых процессоров, выполняющих основные арифметические операции в прямых кодах с фиксированной и плавающей запятой. Техническим результатом является расширение функциональных возможностей, повышение скорости выполнения арифметических операций, повышение надежности работы. Устройство содержит блок ввода чисел и кода операций, блок выполнения операций с фиксированной запятой, блок выполнения операций с плавающей запятой, блок хранения результатов, блок управления. 36 ил., 4 табл.
Формула изобретения
Арифметический вычислитель, содержащий блок ввода чисел и кода операции, блок управления, отличающийся тем, что дополнительно введены блок операций с фиксированной запятой, блок операций с плавающей запятой, блок хранения результатов, причем информационный выход блока ввода чисел и кода операции соединен с информационным входом блока операций с фиксированной запятой, на котором формируются коды арифметических операций и двоичные коды входных чисел, которые представлены в прямом коде для выполнения арифметических операций в формате с фиксированной запятой, передача входных двоичных кодов осуществляется в параллельном режиме - побайтно, информационный выход блока ввода чисел и кода операции соединен с информационным входом блока операций с плавающей запятой, на котором формируются коды арифметических операций и двоичные коды входных чисел, которые представлены в прямом коде для выполнения арифметических операций в формате с плавающей запятой, передача входных двоичных кодов осуществляется в параллельном режиме - побайтно, управляющий вход блока операций с плавающей запятой соединен с первым управляющим выходом блока управления, на котором формируется сигнал разрешения работы блока с плавающей запятой, третий управляющий вход блока управления соединен с управляющим выходом блока операций с плавающей запятой, на котором формируется сигнал окончания работы блока с плавающей запятой, информационный выход блока с плавающей запятой соединен с первым информационным входом блока хранения результатов, на котором формируются двоичные коды результатов при выполнении арифметических операций в формате с плавающей запятой в прямом коде, передача результатов арифметических операций осуществляется в параллельном режиме - побайтно, с первого по четвертый управляющие входы блока хранения результатов соединены соответственно с третьим по шестой управляющими выходами блока управления, на которых формируются сигналы генератора прямоугольных импульсов для формирования адресов столбцов в двоичных счетчиках для записи результатов в оперативное запоминающее устройство, сигналы тактовых импульсов для формирования адресов строк в двоичных счетчиках для записи результатов в оперативное запоминающее устройство, сигнал выбора кристалла для разрешения работы оперативного запоминающего устройства, сигнал выбора режима работы - запись/считывание оперативного запоминающего устройства, второй управляющий выход блока управления соединен с управляющим входом блока операций с фиксированной запятой, на котором формируется сигнал разрешения работы блока с фиксированной запятой, управляющий выход блока операций с фиксированной запятой соединен с четвертым управляющим входом блока управления, на котором формируется сигнал окончания работы блока с фиксированной запятой, информационный выход блока операций с фиксированной запятой соединен со вторым информационным входом блока хранения результатов, на котором формируются двоичные коды результатов при выполнении арифметических операций в формате с фиксированной запятой в прямом коде, передача результатов арифметических операций осуществляется в параллельном режиме - побайтно, первый и второй управляющие входы "СБРОС" и "ПУСК" блока управления являются внешними входами арифметического вычислителя.
Описание изобретения к патенту
Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано для синтеза арифметико-логических устройств, для создания быстродействующих и производительных цифровых процессоров, выполняющих основные операции: суммирование, вычитание, умножение и деление чисел в прямых кодах с фиксированной и плавающей запятой.
Известна "Схема цифрового сумматора" (заявка RU №99109089/09 от 04.07.1997 г. Бюл. №7 (1 ч.). 2001 г.), позволяющая выполнять операцию сложение чисел в двоичной системе счисления.
Известно "Устройство для сложения" (заявка RU №4892584/24 от 19.12.1990 г. Бюл. №25 1995 г.), позволяющее суммировать двоичные числа.
Известно "Устройство для вычисления модуля М-мерного вектора" (заявка RU №95104370/09 от 01.03.1995. Бюл. №15, 1997 г.), которое выполняет операции суммирования и вычитания над М-мерными векторами.
В качестве прототипа выбран "Сумматор-вычитатель старшими разрядами вперед на нейронах" (патент №2205444, 27.05.2003 г.), который выполняет операции суммирования и вычитания двоичных чисел.
Задача заключалась в следующем:
1) расширить функциональные возможности вычислителя,
2) повысить скорость выполнения арифметических операций,
3) повысить надежность работы арифметического вычислителя.
В представленном арифметическом вычислителе выполняются основные арифметические операции: сложение, вычитание, умножение и деление чисел в прямых кодах с фиксированной и плавающей запятой. Предлагаемый арифметический вычислитель позволит расширить функциональные возможности устройства, повысить скорость выполнения арифметических операций, упростить алгоритм работы устройства.
Решение задачи осуществляется тем, что арифметический вычислитель, содержащий блок ввода чисел, блок управления, отличающийся тем, что дополнительно введены блок операций с фиксированной запятой, блок операций с плавающей запятой, блок хранения результатов, причем информационный выход блока ввода чисел соединен с информационным входом блока операций с фиксированной запятой и с информационным входом блока операций с плавающей запятой, управляющий вход которого соединен с первым управляющим выходом блока управления, третий управляющий вход которого соединен с управляющим выходом блока операций с плавающей запятой, информационный выход которого соединен с первым информационным входом блока хранения результатов, с первого по четвертый управляющие входы которого соединены соответственно с третьим по шестой управляющими выходами блока управления, второй управляющий выход которого соединен с управляющим входом блока операций с фиксированной запятой, управляющий выход которого соединен с четвертым управляющим входом блока управления, информационный выход блока операций с фиксированной запятой соединен со вторым информационным входом блока хранения результатов, первый и второй управляющие входы "СБРОС" и "ПУСК" блока управления являются внешними входами арифметического вычислителя.
БВЧ - блок ввода чисел служит для ввода операндов и знака операции (+, -, *, /).
БОФЗ - блок выполнения операций с фиксированной запятой в прямом коде служит для выполнения основных арифметических операций в формате с фиксированной запятой.
БОПЗ - блок выполнения операций с плавающей запятой в прямом коде служит для выполнения основных арифметических операций в формате с плавающей запятой.
БХР - блок хранения результатов служит для записи и хранения в нем результатов выполнения арифметических операций.
БУ - блок служит для управления устройством.
В современных ЭВМ операция вычитания выполняется с применением дополнительного или обратного кода. При вводе отрицательного числа осуществляется перевод его в дополнительный или обратный код. Полученный результат также анализируется. Если получен отрицательный результат, то осуществляется перевод в дополнительный или обратный код. Если получен положительный результат, то перевода в коды не происходит. По этому алгоритму результат можно получить только после анализа знакового разряда результата. В случае ввода двух отрицательных чисел необходимо перевести оба числа в коды. Результат в этом случае также переводится в дополнительный или обратный код [1, 2].
Известен алгоритм сложения чисел в прямых кодах. Этот алгоритм позволяет сразу получить правильный результат в прямом коде. В этом случае необходимо применить операцию вычитания чисел. Для этого используется комбинационная схема вычитателя чисел в прямых кодах.
Для получения суммы двух чисел возможны два случая:
1) слагаемые имеют одинаковые знаки;
2) слагаемые имеют разные знаки.
Алгоритм получения суммы двух чисел с одинаковыми знаками определяется следующим образом:
Алгоритм первый.
1) сложить два числа;
2) сумме присвоить знак одного из слагаемых.
Алгоритм получения суммы двух чисел с разными знаками определяется следующим образом:
1) сравниваются знаки слагаемых и, если они одинаковы, то выполняется сложение по первому алгоритму;
2) если знаки слагаемых разные, то сравниваются числа по абсолютной величине;
3) если есть необходимость, переставить числа местами, чтобы вычитать из большего меньшее;
4) произвести вычитание двух чисел;
5) результату присвоить знак большего слагаемого.
Этот алгоритм позволяет получить сумму или разность чисел в прямых кодах. В арифметическом вычислителе не происходит сравнения чисел, если числа имеют разные знаки, в нем применена операция вычитания из первого числа второе. Если формируется заем из знакового разряда, то в этом случае от меньшего числа вычитается большее. Числа в этом случае с помощью коммутатора меняются местами на входе нейронов сумматора-вычитателя. На втором такте от второго большего числа вычитается первое меньшее. Если заема не образуется, то от большего первого числа вычитается меньшее второе. Менять местами числа на входе нейронов не нужно.
Операция умножения выполняется в прямом коде умножением младшими разрядами множителя со сдвигом суммы частичных произведений влево. Знак произведения определяется путем сложения знаковых цифр сомножителей по модулю два.
Операция деления выполняется по алгоритму деления чисел без восстановления остатков. Для определения следующей цифры частного необходимо сдвинуть текущий остаток влево на один разряд, а затем алгебраически прибавить к нему модуль делителя, которому приписывается знак, противоположный знаку текущего остатка. Знак остатка определяет следующую цифру частного: если остаток положительный, то в частном записывается 1, если отрицательный - записывается 0. Операция сдвигов и алгебраических сложений повторяется до тех пор, пока в частном не получится требуемое количество цифр. Знак частного определяется путем сложения знаковых цифр делимого и делителя по модулю два. По таким алгоритмам выполняются основные арифметические операции с фиксированной запятой [1, 2].
Числа в формате с плавающей запятой представляются в виде знака порядка, значения порядка, знака мантиссы, мантиссы. При выполнении основных арифметических операций в формате с плавающей запятой необходимо выполнять операции над порядками, затем над мантиссами чисел.
Операции сложения, вычитания чисел, представленных в формате с плавающей запятой, выполняются по следующему алгоритму:
1) Осуществляется сравнение порядков путем вычитания их как целых чисел.
2) Производится выравнивание мантиссы числа с меньшим порядком в сторону числа с большим порядком.
3) Производятся алгебраическое сложение или вычитание мантисс чисел.
4) В случае получения левой или правой денормализации мантиссы производится нормализация результата. Нормализация осуществляется с помощью операций сдвига вправо на один разряд и серии сдвигов влево до получения значащей цифры после запятой.
Операция умножения чисел с плавающей запятой выполняется в следующей последовательности:
1) Находится знак произведения при помощи операции суммы по модулю два знаковых разрядов мантисс чисел.
2) Выполняется сложение порядков сомножителей.
3) Находится произведение мантисс сомножителей по алгоритму произведения чисел с фиксированной запятой, т.е. умножением младшими разрядами множителя со сдвигом суммы частичных произведений влево.
4) При получении денормализации осуществляется нормализация результата путем сдвига произведения влево до получения значащей цифры после запятой.
Операция деления чисел в формате с плавающей запятой выполняется по следующему алгоритму:
1) Определяется знак частного с помощью операции суммы по модулю два знаковых разрядов мантисс делимого и делителя.
2) Вычитаются порядки чисел по правилам вычитания операндов с фиксированной запятой. Из порядка делимого вычитается порядок делителя. При возникновении денормализации результата выполняется операция сдвига, тем самым осуществляется нормализация результата.
3) Находится частное мантисс делимого и делителя по алгоритму деления чисел без восстановления остатков в формате чисел с фиксированной запятой. Для определения следующей цифры частного необходимо сдвинуть текущий остаток влево на один разряд, а затем алгебраически прибавить к нему модуль делителя, которому приписывается знак, противоположный знаку текущего остатка. Знак остатка определяет следующую цифру частного: если остаток положительный, то в частном записывается 1, если отрицательный - записывается 0. Операция сдвигов и алгебраических сложений повторяется до тех пор, пока в частном не получится требуемое количество цифр.
4) Нормализация частного при помощи операций сдвига [1, 2].
На фиг.1 изображена структурная схема арифметического вычислителя.
На фиг.2 представлен вариант технической реализации блока ввода чисел и кода операций.
На фиг.3 представлен вариант технической реализации блока операций, выполняющий вычисления с фиксированной запятой.
На фиг.4 изображена функциональная схема блока формирования знакового разряда результата.
На фиг.5 показана функциональна схема блока регистра первого числа.
На фиг.6 показана принципиальная схема многоразрядного сумматора-вычитателя и коммутатора на нейронах и логических элементах.
На фиг.7 изображена функциональная схема одноразрядного сумматора-вычитателя, выполняющего операции суммирования или вычитания со знаковыми разрядами чисел.
На фиг.8 изображена функциональная схема одноразрядного сумматора-вычитателя, выполняющего операции суммирования или вычитания с i-ми разрядами чисел.
На фиг.9 показана функциональная схема блока регистра второго числа.
На фиг.10 представлен вариант технической реализации блока регистра результата.
На фиг.11а, 11б - содержательная ГСА работы устройства.
На фиг.12а, 12б - размеченная ГСА работы устройства.
Арифметический вычислитель (фиг.1) содержит блок ввода чисел, блок операций с фиксированной запятой, блок операций с плавающей запятой, блок хранения результата, блок управления, пороговые элементы, нейроны.
Для описания алгоритма работы блока 5 управления используются следующие идентификаторы:
1. БВЧКО - блок ввода чисел и кода операции.
2. БОФЗ - блок выполнения операций с фиксированной запятой.
3. БОПЗ - блок выполнения операций с плавающей запятой.
4. БХР - блок хранения результатов.
5. БУ - блок управления.
6. БРгПЧ - блок регистра первого числа.
7. БСВ - блок сумматора-вычитателя.
8. БРгВЧ - блок регистра второго числа.
9. БФЗР - блок формирования знакового разряда.
10. БРгРЕЗ - блок регистра результата.
11. ВХЧ - входные числа.
12. ЗРПЧ - знаковый разряд первого числа.
13. ЗРВЧ - знаковый разряд второго числа.
14. ЗЗР - знаковый разряда большего по модулю числа.
15. ЗРРЗ - знаковый разряд результата.
16. РЕЗ - окончательный результат.
17. ПЧ - первое число.
18. ВЧ - второе число.
19. ОСТ - остаток при делении.
20. ПДЧ - признак дробной части при делении.
21. ЦДЧ - целая и дробная часть результата при делении.
22. УПР - сигналы управления в блок регистра результата.
23. СУП - сигналы управления (обнуление, синхронизация, разрешение записи, сдвига блока регистра второго числа.
24. УП - сигналы управления блока регистра первого числа (обнуление, синхронизация, разрешение записи).
25. РФЗ - результат с фиксированной запятой.
26. РМН - разряд множителя при умножении.
27. КОП - код операции (СУМ, ВЫЧ, ДЕЛ, УМН).
28. УМН - операция умножения.
29. СУМ - операция суммирования.
30. ВЫЧ - операция вычитания.
31. ДЕЛ - операция деления.
32. ЗрВЧi - двоичные разряды второго числа.
33. ЗрПЧi - двоичные разряды первого числа.
34. ЗрПЧ - знаковый разряд первого числа.
35. ЗрВЧ - знаковый разряд второго числа.
36. ЗрОСТ - знаковый разряд остатка при делении чисел.
37. ППР - признак пустого регистра второго числа.
38. РЗАП - сигнал разрешения записи информации в регистр первого числа блока регистра первого числа.
39. ОБЛ - сигнал обнуления триггеров регистра первого числа блока регистра первого числа.
40. СДВ - сигнал сдвига информации влево на один разряд регистра первого числа блока БРгПЧ.
41. ВХД - выходные данные блока ввода чисел и кода операции.
42. РПЗ - результат с плавающей запятой.
43. РРФЗ - разрешение работы блока с фиксированной запятой.
44. КРБФЗ - конец работы блока с фиксированной запятой.
45. РРПЗ - разрешение работы блока с плавающей запятой.
46. КРБФЗ - конец работы блока с фиксированной запятой.
47. ОРБПЗ - окончание работы блока с плавающей запятой.
48. ГИ - генератор прямоугольных импульсов.
49. ТИ - тактовые импульсы.
50. ВК - сигнал выбора кристала.
51. Зп/Сч - сигнал записи/считывания информации из ОЗУ.
52. СВ - признак операций суммирования или вычитания.
53. Зрi - двоичные разряды остатка.
54. Дрi - двоичные разряды входного числа.
55. ЗАЕМ - управляющий сигнал заема из старших разрядов при вычитании чисел.
56. РЕЗi - двоичные разряды резутата.
57. Pi - перенос из младших разрядов в старшие.
58. Zi - заем из старших разрядов в младшие.
59. Ri - двоичный разряд разности при выполнении операции вычитания.
60. Si - двоичный разряд суммы при выполнении операции суммирования.
61. ССБ - сигнал сброса триггеров блока второго числа.
62. СЗ - сигнал разрешения записи информации в триггере блока второго числа.
63. ССД - сигнал сдвига информации вправо на один разряд блока второго числа.
64. ВВЧi - входная информация триггеров блока второго числа.
65. ВЧi - выходная информация триггеров блока второго числа.
66. ЗнРР - выходное знаковое значение результата.
67. СС - сигнал сдвига информации влево на один разряд блока результата.
68. УС0 - установка в нулевое значение триггеров блока результата.
69. БУОФЗ - блок управления операциями с фиксированной запятой.
70. СБРОС - сигнал сброса (обнуления) всех комбинационных блоков и элементов памяти арифметического вычислителя.
71. ПУСК - сигнал начала работы арифметического вычислителя.
Работа алгоритма управления арифметического вычислителя.
Содержательная ГСА управления приведена на фиг.11а и фиг.11б и отражает работу блока управления (фиг.1).
В блоке 2 алгоритма осуществляется подача сигнала установки в нулевое состояние - СБРОС на входы всех элементов устройства.
В блоке 3 алгоритма происходит установка сигнала - пуск в единичное значение ПУСК:=1.
В блоке 4 алгоритма управляющий сигнал разрешения работы блока, выполняющего операции с фиксированной запятой, РРФЗ:=1 принимает единичное значение. Арифметический вычислитель выполняет операции в формате с фиксированной запятой.
В блоке 5 алгоритма по команде БОФЗ:=ВХД блок операций с фиксированной запятой принимает входные числовые значения и код операции.
В блоке 6 алгоритма по команде БРгПЧ:=ВХЧ блок регистр первого числа принимает числовое значение первого числа, по команде БРгВЧ:=ВЧ блок регистр второго числа принимает двоичный код второго числа, по команде БФЗР:=КОП на вход блока формирования знакового разряда поступает код операции для выполнения операции дешифрации и формирования режимов работы вычислителя (фиг.3).
В блоках 7-17 алгоритма происходят вычисление суммы чисел, формирование знака результата и запись полученного результата в регистр результата.
В блоке 7 алгоритма анализируется сигнал операции суммирования чисел - СУМ. Если установлена операция суммирования - выход ДА, то осуществляется переход на блок 8 алгоритма, иначе - выход НЕТ на блок 18.
В блоке 8 алгоритма по команде СВ:=0 устанавливается сигнал СВ - суммирование-вычитание в нулевое значение, тем самым устанавливаются режимы функционирования блока по выполнению операции суммирования входных чисел.
В блоке 9 алгоритма по командам БСВ:=ПЧ и БСВ:=ВЧ блок сумматора-вычитателя принимает значения первого и второго чисел соответственно для выполнения операции суммирования.
В блоке 10 алгоритма, используя операцию суммы по модулю два знаковых разрядов первого и второго чисел - ЗрПЧ и ЗрВЧ, происходят вычисление и анализ результата этой операции ЗрПЧ ЗрВЧ. Если результат этой операции равен нулю, то это означает, что необходимо выполнять операцию сложения, так как числа имеют одинаковые знаковые разряды, и установлена операция в блоке 8 алгоритма - суммирование. В этом случае осуществляется переход на блок 15 алгоритма - выход нуль. Если результат в блоке 10 алгоритма равен единице, то это означает, что входные числа имеют разные знаковые разряды и при этом необходимо выполнить операцию вычитания. По выходу - единица данного блока осуществляется переход на блок 11 алгоритма.
В блоке 11 алгоритма по команде РЕЗ:=ПЧ-ВЧ вычисляется разность между первым ПЧ числом и вторым ВЧ.
В блоке 12 алгоритма анализируется сигнал ЗАЕМ - результат вычитания первого и второго чисел. Если ЗАЕМ равен нулю - выход нуль блока, то осуществляется переход на блок 16 алгоритма. В этом случае при выполнении операции вычитания первое число оказалось больше второго, разность между числами получена положительная. Если сигнал ЗАЕМ равен единице - выход единица блока 12 алгоритма, то это означает, что первое число меньше второго и для получения положительной разности необходимо поменять местами входные числа и от второго большего числа вычесть первое меньшее.
В блоке 13 алгоритма по команде РЕЗ:=ВЧ-ПЧ вычисляется разность между вторым ВЧ числом и первым ПЧ.
В блоке 14 алгоритма по команде ЗРРЗ:=ЗРВЧ знаковому разряду результата присваивается знаковый разряд второго большего числа.
В блоке 15 алгоритма по команде РЕЗ:=ПЧ+ВЧ вычисляется сумма первого ПЧ и второго числа ВЧ.
В блоке 16 алгоритма по команде ЗРРЗ:=ЗРПЧ знаковому разряду результата присваивается знаковый разряд первого числа ПЧ.
В блоке 17 алгоритма по команде БРгРЕЗ:=РЕЗ в блок регистр результата записывается результат - сумма в случае равенства знаковых разрядов чисел и разность, если знаковые разряды операндов различные.
В блоках 18-28 алгоритма происходит вычисление разности чисел, формирование результата и его знакового разряда, а также запись полученного результата в регистр результата.
В блоке 18 алгоритма анализируется сигнал операции вычитания чисел - ВЫЧ. Если установлена операция вычитания - выход ДА, то осуществляется переход на блок 19 алгоритма, иначе - выход НЕТ на блок 29.
В блоке 19 алгоритма по команде СВ:=1 устанавливается сигнал СВ - суммирование-вычитание в единичное значение, это означает, что устанавливается режим функционирования вычитателя для выполнения операции вычитания входных чисел.
В блоке 20 алгоритма по командам БСВ:=ПЧ и БСВ:=ВЧ блок сумматора-вычитателя принимает значения первого ПЧ и второго ВЧ чисел соответственно для выполнения операции вычитания.
В блоке 21 алгоритма, применяя операцию сумму по модулю два знаковых разрядов первого и второго чисел - ЗрПЧ и ЗрВЧ, - происходят вычисление и анализ результата этой операции ЗрПЧ ЗрВЧ. Если результат этой операции равен единице, то это означает, что необходимо выполнять операцию сложения, так как числа имеют разные знаковые разряды и установлена операция в блоке 19 алгоритма - вычитание. В этом случае осуществляется переход на блок 26 алгоритма - выход единица. Если результата в блоке 21 алгоритма равен нулю, то это означает, что входные числа имеют одинаковые знаковые разряды и при этом необходимо выполнить операцию вычитание. По выходу - нуль блока 21 алгоритма осуществляется переход на блок 22 алгоритма.
В блоке 22 алгоритма по команде РЕЗ:=ПЧ-ВЧ вычисляется разность между первым ПЧ числом и вторым ВЧ.
В блоке 23 алгоритма анализируется сигнал ЗАЕМ - результат вычитания первого и второго чисел. Если ЗАЕМ равен нулю - выход нуль блока, то осуществляется переход на блок 27 алгоритма. В этом случае при выполнении операции вычитания первое число оказалось больше второго, разность между числами получена положительная. Если сигнал ЗАЕМ равен единице - выход единица блока 23 алгоритма, то это означает, что первое число меньше второго. В этом случае, чтобы получить положительную разность, необходимо поменять местами входные числа и от второго большего числа вычесть первое меньшее.
В блоке 24 алгоритма по команде РЕЗ:=ВЧ-ПЧ вычисляется разность между вторым ВЧ числом и первым ПЧ.
В блоке 25 алгоритма по команде ЗРРЗ:=ЗРВЧ знаковому разряду результата присваивается знаковый разряд второго большего числа.
В блоке 26 алгоритма по команде РЕЗ:=ПЧ+ВЧ вычисляется сумма первого ПЧ и второго числа ВЧ.
В блоке 27 алгоритма по команде ЗРРЗ:=ЗРПЧ знаковому разряду результата присваивается знаковый разряд первого числа ПЧ.
В блоке 28 алгоритма по команде БРгРЕЗ:=РЕЗ в блок регистр результата записываются результат - разность в случае равенства знаковых разрядов чисел - и сумма, если знаковые разряды операндов различные.
В блоке 29 алгоритма анализируется сигнал операции деления чисел - ДЕЛ. Если установлена операция деления - выход ДА, то осуществляется переход на блок 30 алгоритма, иначе - выход НЕТ на блок 49.
В блоке 30 алгоритма по команде СВ:=1 устанавливается сигнал СВ - суммирование-вычитание в единичное значение, это означает, что устанавливается режим функционирования вычитателя для выполнения операции деления входных операндов.
В блоке 31 алгоритма по командам БСВ:=ПЧ и БСВ:=ВЧ блок сумматора-вычитателя принимает значения первого ПЧ и второго ВЧ чисел соответственно для выполнения операции деления, где делимое - первое число ПЧ, делитель - второе число ВЧ для получения первого остатка - OCT.
В блоке 32 алгоритма по команде ОСТ:=ПЧ-ВЧ определяется первый остаток между делимым ПЧ и делителем ВЧ.
Блоки 33-45 алгоритма образуют цикл, в результате которого формируется целая часть частного. Как только целая часть будет получена, то блоки 36-46 вычисляют дробную часть частного до определенной точности - количество знаков после запятой, которая определяется количеством разрядов регистра блока регистра результата.
В блоке 33 алгоритма анализируется сигнал ПДЧ - признак дробной части частного. Если вычисляется целая часть частного, при этом признак ПДЧ равен нулю - выход блока нуль, то осуществляется переход на блок 35 алгоритма. Если вычисляется дробная часть результата - выход единица, то осуществляется переход на блок 34 алгоритма.
В блоке 34 алгоритма по команде ЦДЧ:=1 целая и дробная часть результата принимает значение единицы, это означает, что вычисляются двоичные разряды частного в дробной части.
В блоке 35 алгоритма по команде ЦДЧ:=0 целая и дробная часть результата принимает значение нуля, это означает, что формируются двоичные разряды частного в целой части.
В блоках 36-44 алгоритма анализируется знаковый разряд остатка и при этом определяется двоичный разряд частного. Частное формируется поразрядно согласно алгоритму деления чисел без восстановления остатка.
В блоке 36 анализируется знаковый разряд остатка - ЗрОСТ. Если ЗрОСТ равен единице - выход единица блока, то это означает, что очередной двоичный разряд частного равен нулю и при этом осуществляется переход на блок 41 алгоритма. В случае знакового разряда ЗрОСТ, равного нулевому значению, разряд частного при этом будет равен единице. В результате этого осуществляется переход на блок 37 алгоритма.
В блоке 37 алгоритма по команде БРгРЕЗ:=1 происходит загрузка единичного значения частного в регистр блока регистра результата.
В блоке 38 алгоритма по команде БРгПЧ:=ОСТ в регистр блока первого числа записывается очередной остаток - ОСТ для формирования частного заданной точности.
В блоке 39 по команде БРгПЧ:=СДВ на вход регистра блока регистра первого числа поступает управляющий сигнал сдвига СДВ из блока управления, для выполнения операции сдвига информации влево на один разряд, находящийся в регистре блока.
В блоке 40 алгоритма по команде БРгРЕЗ:=СС на вход блока регистра результата поступают управляющий сигнал СС - сдвига информации влево на один разряд, тем самым формируются двоичные разряды частного. По команде ОСТ:=ПЧ-ВЧ вычисляется разность между предшествующим остатком и делителем, при этом вычисляется очередной остаток.
В блоке 41 алгоритма по команде БРгРЕЗ:=0 происходит загрузка нулевого значения частного в регистр блока регистра результата.
В блоке 42 алгоритма по команде БРгПЧ:=ОСТ в регистр блока первого числа записывается очередной остаток - ОСТ для формирование частного заданной точности.
В блоке 43 по команде БРгПЧ:=СДВ на вход регистра блока регистра первого числа поступает управляющий сигнал сдвига - СДВ из блока управления для выполнения операции сдвига информации влево на один разряд.
В блоке 44 алгоритма по команде БРгРЕЗ:=СС на вход блока регистра результата поступает управляющий сигнал СС - сдвига информации влево на один разряд, тем самым формируются двоичные разряды частного. По команде ОСТ:=ПЧ+ВЧ происходит сложение с предшествующим остатком и делителем, тем самым вычисляется очередной остаток.
В блоке 45 алгоритма анализируется информационный сигнал ЦДЧ - целая и дробная часть частного. Если этот сигнал равен нулевому значению - выход нуль блока, то осуществляется переход на блок 33 алгоритма. В этом случае вычисляются разряды целой части частного и после очередного полученного разряда целой части происходит проверка на признак дробной части. Этот цикл формирует целую часть частного до получения признака конца разрядов целой части делимого, скажем, до обнаружения кода запятой в двоичном числе делимого. Если этот признак ЦДЧ равен единице - выход единица блока, то это означает, что целая часть частного получена и при этом необходимо получать двоичные разряды дробной части результата. С выхода блока 45 по единице осуществляется переход на блок 46 алгоритма.
В блоке 46 алгоритма анализируется признак получения окончательного результата - РЕЗ. Если не все двоичные разряды частного сформированы, то осуществляется переход на блок 36 алгоритма - выход блока НЕТ. В этом случае процесс получения разрядов частного продолжается в циклическом режиме до получения частного с заданной точностью в дробной части. По выходу - ДА этого блока осуществляется переход на блок 47 алгоритма.
В блоке 47 алгоритма по команде БРгРЕЗ:=РЕЗ окончательный результат - частное входных чисел записывается в регистр блока регистра результата.
В блоке 48 алгоритма определяется знаковый разряд частного - ЗРРЗ по операции суммы по модулю два знаковых разрядов первого числа ПЧ и второго числа ВЧ. Определение знака осуществляется по команде ЗРРЗ:=ЗРПЧ ЗРВЧ.
В блоке 49 алгоритма по команде БСВ:=УМН на вход блока сумматора-вычитателя поступает управляющий сигнал УМН для выполнения операции умножения между входными числами. Известны несколько способов умножения чисел в двоичной системе счисления. В представленном вычислителе произведение чисел первого числа ПЧ и второго числа ВЧ выполняется путем умножения с младших разрядов множителя со сдвигом множимого влево.
Блоки 50-54 алгоритма формируют цикл, в котором анализируется разряд множителя, начиная с младшего, затем происходит суммирование накапливаемой суммы частичных произведений со сдвинутым влево на один или несколько разрядов множимым.
В блоке 50 алгоритма анализируется управляющий сигнал - признак произведения ППР, при котором окончательно будет сформировано произведение чисел. Если признак произведения ППР равен нулю - выход нуль блока, то это означает, что все двоичные значимые разряды множителя просмотрены в регистре блока регистров второго числа и при этом осуществляется переход на блок 55 алгоритма, в котором формируется окончательный результат. Если признак произведения ППР равен единице - выход единица блока - это означает, что не все разряды множителя просмотрены, процесс вычисления произведения продолжается в циклическом режиме. При этом осуществляется переход на блок 51 алгоритма.
В блоке 51 алгоритма по команде БРгВЧ:=ССД на вход регистра блока регистра второго числа поступает сигнал сдвига вправо на один разряд для анализа очередного двоичного разряда множителя - РМН.
В блоке 52 алгоритма анализируется очередной разряд множителя - РМН. Если разряд множителя РМН равен нулевому значению - выход нуль блока, то осуществляется переход на блок 54 алгоритма. В этом случае не происходит суммирования частичных произведений со сдвинутым множимым. Если двоичный разряд множителя равен единице - выход единица блока, то осуществляется переход на блок 53 алгоритма.
В блоке 53 алгоритма по команде БСВ:=ПЧ+БСВ происходит суммирование частичных произведений со сдвинутым влево множимым.
В блоке 54 алгоритма по команде БРгПЧ:=СДВ на вход регистра блока регистра первого числа поступает из блока управления сигнал сдвига влево на один разряд, в этом регистре хранится множимое.
В блоке 55 алгоритма по команде БРгРЕЗ:=РЕЗ произведение входных чисел записывается в регистр блока регистра результата.
В блоке 56 алгоритма определяется знаковый разряд произведения - ЗРРЗ по операции суммы по модулю два знаковых разрядов первого числа ПЧ и второго числа ВЧ. Определение знака осуществляется по команде ЗРРЗ:=ЗРПЧ ЗРВЧ.
Блок 57 алгоритма является конечным.
Работа арифметического вычитателя заключается в следующем.
Внешние управляющие сигналы "СБРОС" и "ПУСК" поступают в блок 5 управления.
Предлагаемое арифметическое устройство выполняет операции суммирования, вычитания, умножения и деления в параллельном формате. Определяется перенос в старшие разряды при суммировании, который необходимо учитывать при сложении чисел. Вычисляется заем из старших разрядов в младшие при вычитании. Умножение выполняется младшими разрядами множителя со сдвигом суммы частичных произведений влево. Операция деления осуществляется по алгоритму деления чисел без восстановления остатков.
Блок 1 ввода чисел и кода операций - БВЧКО содержит шифратор (обычная стандартная клавиатура) ШФ DD6, дешифратор DD7 (фиг.2). Этот блок позволяет вводить двоичные числа и дешифрировать код операций, т.е. распознать, какую операцию необходимо выполнить вычислителю - сложение, вычитание, умножение, деление. С выхода шифратора формируется двоичный код чисел со своими знаками: ЗрiПЧ, ЗрiВЧ, ЗРПЧ, ЗРВЧ в виде информационного сигнала - ВХЧ. Двоичные разряды с выхода шифратора поступают на вход регистров первого и второго числа. С выхода дешифратора кода операций DD7 (фиг.2) формируется информационный сигнал КОП - код операций, который поступает на вход блока формирования знакового разряда (фиг.3). В зависимости от кода операции вычислитель выполняет соответствующую арифметическую операцию. Выходным информационным сигналом блока 1 БВЧКО является сигнал - ВХД - выходные данные.
Блок 2 операций с фиксированной запятой содержит: блок 8 формирования знакового разряда результата - БФЗР, блок 9 регистра первого числа - БРгПЧ, блок 10 сумматора - вычитателя - БСВ, блок 11 регистра второго числа - БРгВЧ, блок 12 регистра результата - БРгРЕЗ, блок 13 управления операциями с фиксированной запятой - БУОФЗ (фиг.3). Основная функция этого блока заключается в вычислении результата и формировании знакового разряда результата при выполнении операций: умножение и деление, а также определения типа операций: сложение или вычитание. На информационные входы блоков 9 и 11 регистров первого и второго числа поступают входные операнды - ВХЧ из блока 2 ввода чисел (фиг.2, 3). В случае выполнения операций умножения или деления этот блок по операции суммы по модулю два определяет знаковый разряд результата - ЗРРЗ, поступающий на вход блока 12 регистра результата ЗРРЗ=ЗРПЧ ЗРВЧ, где ЗРПЧ - знаковый разряд первого числа, ЗРВЧ - знаковый разряд второго числа. Если вычислитель выполнял операции сложения или вычитания, то знаковый разряд результата ЗЗР формируется в блоке 10 сумматора-вычитателя и поступает на вход блока 8 формирования знакового разряда. На управляющие входы блоков 9, 11, 12 регистра первого числа, второго числа, результата из блока 13 управления операциями с фиксированной запятой поступают соответственно информационные сигналы: УП на блок 9 регистра первого числа, СУП на блок 11 регистра второго числа, УПР на блок 12 регистра результата. По приходу сигналов осуществляются обнуление регистров этих блоков, синхронизация по записи информации, а также сигналы сдвига в блоки регистров первого и второго числа. На входы блока сумматора-вычитателя поступают двоичные коды чисел ПЧ - первое число и ВЧ - второе число для выполнения операций сложения, вычитания, умножения и деления. На вход блока 10 сумматора-вычитателя из блока 8 формирования знакового разряда поступают управляющие сигналы: СВ - суммирование-вычитание для управления по выполнению операций суммирования или вычитания и УМН - умножение для выполнения операции произведения чисел. Из блока 10 сумматора-вычитателя выходной управляющий сигнал ЗрОСТ - знаковый разряд остатка - поступает на вход блока 8 формирования знакового разряда и на вход блока 12 регистра результата для определения признака операции - сигнала СВ и очередной цифры частного при выполнении операции деления. Выходным управляющим сигналом блока 10 сумматора-вычитателя является сигнал - ЗЗР знаковый разряд, который поступает на вход блока 8 для формирования окончательного знака результата. Выходной сигнал блока 10 сумматора-вычитателя ОСТ - остаток, поступает на вход блока 9 регистра первого числа, формирование этого сигнала необходимо при выполнении операции деления. Выходной информационный сигнал РЕЗ является результатом операций, который поступает на вход блока 12 регистра результата. Выходным информационным сигналом блока 12 регистра результата является сигнал РФЗ - результат с фиксированной запятой. С входа блока 9 регистра первого числа на вход блока 13 управления операциями с фиксированной запятой поступает управляющий сигнал ПДЧ - признак дробной части при делении, который является признаком конца целой части двоичного первого числа. При поступлении этого сигнала на блок управления необходимо установить знак, отделяющий целую часть числа от дробной в блоке 12 регистра результата. На вход блока 12 регистра результата поступает с выхода блока 13 управления операциями с фиксированной запятой признак целой и дробной части результата при делении - ЦДЧ, который формирует позицию, отделяющую целую часть от дробной (точку или запятую). На вход блока 8 формирования знакового разряда поступает информационный сигнал КОП - код операции сложения, вычитания, умножения и деления, этот сигнал поступает на вход блока 13 управления операциями с фиксированной запятой для анализа и генерации соответствующих управляющих сигналов, поступающих на входы блоков. С выхода блока 11 регистра второго числа выходит управляющий сигнал РМН - соответствующий значению двоичного разряда второго числа при выполнении операции умножения вычислителем, который поступает на вход блока 9 регистра первого числа. При РМН равным нулю, происходит сдвиг двоичного числа блока 9 регистра первого числа на один разряд влево, если сигнал РМН равен единице, то блок 10 суммирования-вычитания принимает значение из блока 9 регистра первого числа. Выходной управляющий сигнал ППР - признак пустого регистра - поступает на вход блока 13 управления операциями с фиксированной запятой. Этот сигнал принимает значение единица, если в регистре второго числа имеется хотя бы один двоичный разряд, равный единице. Внешними входными сигналами блока 13 управления операциями с фиксированной запятой являются управляющие сигналы: РРБФЗ - разрешения работы блока операций с фиксированной запятой и КРБФЗ - конец работы блока операций с фиксированной запятой.
Блок 8 формирования знакового разряда результата БФЗР (фиг.4) построен на пороговых элементах и нейронах, содержит элемент ИЛИ DD14, элементы И DD15, DD16, сумматор по модулю два DD17, элемент И DD18, элемент И с инверсным входом DD19, элемент ИЛИ DD20, элемент И с инверсным входом DD21, элемент ИЛИ DD22, элементы И DD23 и DD24, сумматор по модулю два DD25, логический элемент ИЛИ DD26. Входной информационный сигнал КОП - код операции поступает с выхода блока 1 ввода чисел и кода операций - представляет собой совокупность четырех управляющих сигналов, которые соответствуют основным арифметическим операциям: СУМ - суммирование, ВЫЧ - вычитание, ДЕЛ - деление, УМН - умножение (фиг.4). На вход блока поступают управляющие сигналы: ЗРПЧ - знаковый разряд первого числа и ЗРВЧ - знаковый разряд второго числа. Входной управляющий сигнал ЗЗР - знаковый разряд - поступает на вход логического элемента ИЛИ DD26, этот сигнал поступает с выхода блока 10 сумматора-вычитателя. Этот сигнал определяет знак результата при операциях сложения и вычитания. Выходным управляющим сигналом СВ - суммирование-вычитание является признаком выполнения операций - суммирование или вычитание блоком 10 сумматора-вычитателя. Этот сигнал поступает с выхода логического элемента ИЛИ DD20. Если сигнал СВ равен нулю, то необходимо выполнить операцию суммирование, в противоположном случае, когда СВ равен единице, выполняется операция вычитание. Управляющий сигнал УМН - умножение является выходным сигналом блока, поступающим на вход блока 10 сумматора-вычитателя. Выходной знаковый разряд результата ЗРРЗ формируется с выхода логического элемента ИЛИ DD26 и поступает на вход блока 12 регистра результата. Логические элементы: ИЛИ DD14, И DD15, DD16 сумматор по модулю два DD17, И DD18, И с инверсным входом DD19, ИЛИ DD20, И с инверсным входом DD21 определяют признак выполнения операции суммирования или вычитания блока 10. Если сигнал СВ равен нулю, то блок 10 выполняет суммирование чисел, если СВ равен единице, то выполняется операция вычитания чисел. Операция суммирования по модулю чисел СУМ=1 выполняется тогда и только тогда, когда числа имеют одинаковые знаковые разряды, то есть ЗРПЧ=0 и ЗРВЧ=0 - оба числа положительные или ЗРПЧ=1 и ЗРВЧ=1 - оба числа отрицательные, и установлена пользователем операция СУМ=1 - суммирование в блоке 1 ввода чисел и кода операций при этом сигнал СВ=0, если же одно из чисел будет отрицательным ЗРПЧ=0, а ЗРВЧ=1 или ЗРПЧ=1, а ЗРВЧ=0, то выполняется операция вычитания, при этом выходной сигнал СВ=1. Определение сигнала СВ - суммирование-вычитание можно представить в таблице 1.
Операция вычитания ВЫЧ=1 чисел выполняется тогда и только тогда, когда числа имеют одинаковые знаковые разряды, то есть ЗРПЧ=0 и ЗРВЧ=0 - оба числа положительные или ЗРПЧ=1 и ЗРВЧ=1 - оба числа отрицательные, и установлена пользователем операция ВЫЧ=1 - вычитание в блоке 1 ввода чисел и кода операций, при этом сигнал СВ=1, если же одно из чисел будет отрицательным ЗРПЧ=0, а ЗРВЧ=1 или ЗРПЧ=1, а ЗРВЧ=0, то выполняется операция суммирования, при этом сигнал СВ=0. Определение сигнала СВ - суммирование-вычитание можно представить в таблице 2. Логический элемент ИЛИ DD14 выполняет собирательную функцию двух команд СУМ - суммирование и ВЫЧ - вычитание, поступающих на входы элемента. Если установлена одна из перечисленных функций, то на выходе элемента DD14 всегда будет единица.
Элементы И DD15 и DD16 выполняют функцию электронных ключей, на управляющий вход которого поступает выход логического элемента ИЛИ DD14. Электронные ключи будут открыты в случае выбора пользователем операций суммирования или вычитания. На вход сумматора по модулю два DD17 поступают знаковые разряды двоичных чисел ЗРПЧ и ЗРВЧ. Если они одинаковые, то на выходе будет низкий уровень - нулевое состояние, если знаковые разряды разные, то на выходе сумматора по модулю два будет высокий уровень - единица. Логический элемент И DD18 и элемент И с инверсным входом DD19 работают как электронные ключи, управляющим сигналом к которым является выходной сигнал сумматора по модулю два DD17. Если управляющий вход элементов DD18 и DD19 равен нулю, то на выходе электронного ключа DD18 будет нулевое состояние, а на выходе ключа DD19 будет сигнал ВЫЧ - вычитание. Если знаковые разряды разные, то управляющий сигнал электронных ключей DD18 и DD19 равен единице, в этом случае на выходе логического элемента И DD19 будет нуль, а на выходе элемента И DD18 будет сигнал СУМ - суммирование. Если пользователем выбрана операция деления чисел - команда ДЕЛ, то единичное значение этой команды поступит на вход логического элемента ИЛИ DD20. На выходе будет также единичное значение СВ=1, при этом будет выполнена первая операция вычитания, в дальнейшем код операции при делении будет зависеть от знакового разряда остатка, при умножении чисел всегда выполняется операция суммирования, то есть выходной сигнал СВ=0. Такое состояние при умножении формирует логический элемент И DD21 с инверсным входом. Команда УМН поступает одновременно как на прямой вход элемента И DD21, так и на инверсный вход. На выходе логического элемента И DD21 всегда будет нуль, что определяет операцию суммирования (фиг.4). Элементы ИЛИ DD22, И DD23, DD24, сумматор по модулю два DD25, элемент ИЛИ DD26 образуют систему логических элементов, которые формируют знаковый разряд результата, в случае выбора пользователем операций деления или умножения. Управляющие сигналы ДЕЛ - деление и УМН - умножение поступают на вход логического элемента ИЛИ DD22. Один из сигналов высокого уровня ДЕЛ или УМН формирует выходной сигнал высокого уровня на выходе схемы ИЛИ DD22. Логические элементы И DD23 и DD24 выполняют функцию электронных ключей. На первые входы элементов И DD23 и DD24 поступают знаковые разряды первого и второго числа ЗРПЧ и ЗРВЧ. Единичный сигнал с выхода элемента ИЛИ DD22 открывает элементы И DD23 и DD24, который поступает параллельно на вторые входы этих элементов и является управляющим сигналом (фиг.4). На сумматоре по модулю два DD25 формируется знаковый разряд в случае выполнения арифметическим вычислителем операций деления или умножения ЗРРЗ=ЗРПЧ В ЗРВЧ. На выходе логического элемента ИЛИ DD26 окончательно формируется знаковый разряд результата - ЗРРЗ (фиг.4).
Блок 9 регистра первого числа (БРгПЧ) (фиг.5) содержит m-триггеров Tpm, где m - количество разрядов входного числа, выполненных на элементах: DD27, DD28, DD29, DD30, двухвходовый пороговый элемент ИЛИ DD35, систему трехвходовых элементов ИЛИ, выполненных на пороговых элементах DD31, DD32, DD33, DD34 (фиг.5). Блок 9 регистра первого числа предназначен для хранения двоичного кода первого числа, поступившего с клавиатуры. Перед началом работы вычислителя по приходу из блока 13 управления операциями с фиксированной запятой информационного сигнала УП происходит обнуление всех триггеров блока управляющим сигналом ОБЛ, поступающего параллельно на все входы триггеров блока. По приходу из блока 1 ввода чисел и кода операций информационного сигнала ВХЧ - данные первого числа осуществляется загрузка, двоичного кода в регистр блока 9 БРгПЧ (фиг.5). Информационный сигнал ВХЧ состоит из сигналов Др1, Др2, Др3, ..., Дpm, поступающих на входы системы трехвходовых пороговых элементов ИЛИ (фиг.5). При поступлении управляющего сигнала РЗАП - на входы триггеров Тр1, Тр2, Тр3, ..., Tpm из блока 13 управления операциями с фиксированной запятой, разрешающего записать информацию, происходит загрузка поступившего двоичного кода числа в триггеры блока. Управляющий сигнал СДВ - сдвига генерируется блоком 13 управления в случае выполнения операции деления арифметическим вычислителем. Информационный сигнал ОСТ - остаток при делении поступает с выхода блока 10 сумматора-вычитателя БСВ (фиг.3) на входы системы пороговых элементов ИЛИ. Выходной информационный сигнал ПДЧ - признак дробной части - определяет установленный код, отделяющий целую часть от дробной при выполнении операции деления. Этот сигнал поступает на вход блока 13 управления операциями с фиксированной запятой, где происходят дешифрация сигнала и установка в частном признака (кода запятой), отделяющего целую часть от дробной (фиг.3, 5). Информационный сигнал ОСТ состоит из сигналов Зр1, Зр2, Зр3, ..., Зрm - двоичных разрядов остатка (фиг.5). Управляющий сигнал РМН, поступающий на вход двухвходового порогового элемента ИЛИ DD35, генерируется блоком регистра второго числа в случае выполнения операции умножения арифметическим вычислителем. Выход каждого m-триггера регистра поступает на вход предыдущего m-1 элемента системы трехвходовых пороговых ИЛИ. Эта операция осуществляется при поступлении сигналов сдвига СДВ или РМН соответственно при выполнении операций деления и умножения. При этом выполняется операция сдвига на один разряд влево (фиг.5). Выходной информацией блока 9 регистра первого числа является информационный сигнал ПЧ - первое число, поступающий на вход блока 10 сумматора-вычитателя (фиг.3). Информационный сигнал ПЧ состоит из двоичных разрядов ПЧ1, ПЧ2, ПЧ3, ..., ПЧm, поступающих с выходов триггеров Тр1, Тр2, Тр3, ..., Трm (фиг.5).
Блок 10 сумматор-вычитатель состоит из двух частей - коммутатора (переключателя) и сумматора-вычитателя (фиг.6). Коммутатор состоит из элементов И-ИЛИ, построенных на микросхемах: DD36, DD37, DD38, DD39, DD40, DD41, DD42, DD43, сумматор-вычитатель построен на комбинационных схемах СУМ-ВЫЧi, выполненных на элементах DD44, DD45, DD46, DD47, а также элемента с инверсным управляющим входом И, выполненного на микросхеме DD48, работающего в режиме вентиля. Входными величинами в блок 10 сумматор-вычитатель являются двоичные разряды чисел - ПЧ - первое двоичное число и ВЧ - второе двоичное число и знаковые разряды операндов: ЗРПЧ - знаковый разряд первого числа, ЗРВЧ - знаковый разряд второго числа. Двоичные разряды ЗрiПЧ, ЗрiВЧ поступают поразрядно на входы коммутатора. Элементы DD36, DD37, DD44 выполняют сложение или вычитание знаковых разрядов ЗРПЧ и ЗРВЧ двоичных чисел (фиг.6). Управляющим входом для комбинационных схем СУМ-ВЫЧi является сигнал СВ - суммирование-вычитание, поступающий из блока 8 формирования знакового разряда результата (фиг.4). Управляющий сигнал СВ поступает параллельно на входы всех комбинационных схем СУМ-ВЫЧi. Если сигнал СВ равен нулю, то комбинационные схемы выполняют операцию суммирования, в случае равенства сигнала СВ единице, выполняется операция вычитания. При выполнении операции умножения управляющий сигнал УМН, равный единице, блокирует операцию сложения знаковых разрядов чисел, а также перенос из СУМ-ВЫЧ2 в СУМ-ВЫЧ1. В случае выполнения операции умножения знаковые разряды чисел не задействованы в формировании результата. При этом работают операции - суммирование, сдвиг множимого на один разряд влево и сдвиг множителя вправо на один разряд. Если вычитатель выполняет операции суммирования, вычитания или деления, то знаковые разряды в формировании результата участвуют. Управляющий сигнал УМН - умножение - при этом равен нулевому значению, который поступает на инверсные управляющие входы элементов И-ИЛИ DD36, DD37, элемента И DD48, тем самым разрешает работу указанных схем. При выполнении операции вычитания необходимо от первого числа ПЧ вычесть второе число ВЧ, если ЗАЕМ, выходной сигнал комбинационной схемы СУМ-ВЫЧ1 DD44 равен единице, то это означает, что первое число ПЧ по модулю меньше второго ВЧ. В этом случае необходимо поменять местами входные числа. Управляющий сигнал ЗАЕМ, поступающий параллельно на входы элементов И-ИЛИ, коммутирует входы ЗрiПЧ и ЗрiВЧ, таким образом, что теперь происходит вычитание от второго числа ЗрiВЧ первое число ЗрiПч, меняя тем самым местами числа. В этом случае происходит вычитание от большего по модулю числа меньшего. Заема из старшего разряда при этом не будет. Выходными сигналами блока являются сигналы: ЗЗР - знаковый разряд при выполнении суммы или разности и ЗрОСТ - знаковый разряд остатка при делении. Знаковый разряд ЗЗР является выходом элемента И-ИЛИ DD36 - самого правого знакового разряда чисел. Знаковый разряд остатка ЗрОСТ - является выходом элемента СУМ-ВЫЧ1, т.е. суммой или разностью поступающих на вход элемента величин. Выходным информационным сигналом блока являются двоичные разряды результата РЕЗi (фиг.6).
Одноразрядный сумматор-вычитатель СУМ-ВЫЧ1 (фиг.7) содержит сумматор по модулю два, выполненный на формальном нейроне - элемент DD56, пороговые элементы DD49, DD50, DD51, инвертор DD52, логические схемы И DD53, DD54, логическую схему ИЛИ DD55. Сумматор-вычитатель вычисляет знаковый разряд при выполнении операции вычитание и знаковый разряд остатка ЗрОСТ при делении, затем формируется разряд частного. На пороговом элементе (ПЭ) DD50 формируются перенос при сложении и заем при вычитании. Пороговые элементы DD51 и DD50 составляют сумматор [1, 2]. На входы этих пороговых элементов поступают двоичные знаковые разряды первого и второго числа: ЗРПЧ и ЗРВЧ, а также перенос Р2 из младшего разряда в старший (фиг.7). Двоичные разряды поступают поразрядно: ЗРПЧ - знаковый разряд первого числа, ЗРВЧ - знаковый разряд второго числа, Р2 - перенос, Z1 - заем, а также признак суммирования-вычитания сигнал СВ (фиг.7). Пороговые элементы DD49 и DD50 образуют схему вычитателя знаковых разрядов. Логические элементы DD53 и DD54 выполняют роль электронных ключей. Управляющим сигналом для них является признак суммирования-вычитания СВ. На пороговый элемент DD53 этот сигнал поступает на прямой вход. На пороговый элемент DD54 этот сигнал поступит через инвертор DD52. Если признак операции СВ суммирования-вычитания будет равен нулю - выполнение операции суммирования, то электронный ключ DD54 будет открыт, а ПЭ DD53 будет заперт, т.к. управляющий сигнал СВ поступает через инвертор DD52 на вход логического элемента И DD54. На выходе порогового элемента DD50 сформируется перенос из старшего разряда в знаковый разряд, если на входе порогового элемента DD56 будет не менее двух единиц. Пороговый элемент DD51 вычисляет сумму одноразрядных двоичных чисел - ЗРПЧ и ЗРВЧ, - а также перенос Р2 из старшего разряда в знаковый. При суммировании через открытый элемент DD54 и схему ИЛИ DD55 разряд суммы S1 поступит на вход схемы ИЛИ DD55, затем на вход блока 12 регистра результата. Если сигнал СВ равен единице, что означает выполнение операции вычитания. Пороговые элементы DD49 и DD50 образуют схему вычитателя. С выхода элемента DD50 формируется ЗАЕМ из старших разрядов в младшие. С выхода элемента DD49 вычисляется разность поступивших на вход одноразрядного сумматора-вычитателя двоичных чисел - ЗРПЧ и ЗРВЧ, а также заема Z1 из старших разрядов в младшие (фиг.7). Через открытый электронный ключ DD53 и пороговый элемент DD55 (схема ИЛИ) разряды разности R1 будут поступать на вход блока 12 регистра результата. При выполнении операций суммирования и вычитания схема СУМ-ВЫЧ1 в вычислении окончательного результата РЕЗ функционирует. Если установлена операция умножения, то управляющим сигналом УМН, поступающего из блока 8 формирования знакового разряда результата, схема СУМ-ВЫЧ1 блокируется и не формирует произведение. В случае выполнения операции деления схема СУМ-ВЫЧ1 вычисляет знаковый разряд остатка - ЗрОСТ, который является выходом схемы. Значение сигнала ЗрОСТ формирует двоичные разряды частного. Если знаковый разряд ЗрОСТ равен единичному значению, т.е. получен отрицательный остаток при вычитании предыдущего остатка и сдвинутого делителя, то разряд частного равен нулю. В случае сигнала ЗрОСТ, равного нулевому значению, т.е. получен положительный остаток, двоичный разряд частного равен единице. Вычисление разрядов частного продолжается до тех пор, пока не будут получены все разряды частного как целой части, так и дробной с заданной точностью. Разряды частного через инвертор DD84 формируются в блоке 12 регистра результата (фиг.10). Выходной сигнал ЗАЕМ, являющийся выходом с элемента DD50, поступает на прямые входы коммутатора (фиг.6). При выполнении операции вычитания сигнал ЗАЕМ формирует вычитание от большего числа по модулю меньшего. Если сигнал ЗАЕМ равен единичному значению, то необходимо поменять местами входные числа, в этом случае от меньшего числа по модулю вычитается большее. В случае равенства этого сигнала нулевому значению менять местами входные числа не надо, при этом от большего числа вычитается меньшее (фиг.6, 7). В этом случае вычисляется окончательный правильный результат.
Одноразрядный сумматор-вычитатель СУМ-ВЫЧi (фиг.8) суммирования-вычитания содержит: логическую схему И DD57, логический элемент ИЛИ DD58, сумматор по модулю два, выполненный на формальном нейроне - элемент DD59, пороговые элементы DD60, DD61, DD62, инвертор DD63, логические схемы И DD64, DD65, логическую схему ИЛИ DD66. На пороговом элементе (ПЭ) DD61 формируется перенос при сложении или заем при вычитании. Пороговые элементы DD62 и DD61 составляют сумматор [1, 2]. На входы этих пороговых элементов поступают двоичные разряды чисел ЗрiПЧ и ЗрiВЧ, а также перенос Pi+1 из младших разрядов в старшие (фиг.6, 8). Двоичные разряды поступают поразрядно: ЗрПЧ1 - разряд первого числа, ЗрВЧ1 - разряд второго числа, Pi+1 - перенос, Zi-1 - заем, а также признак суммирования-вычитания СВ (фиг.6, 8). Пороговые элементы DD60 и DD61 образуют схему вычитателя чисел от большего меньшего. Логические элементы DD64 и DD65 выполняют роль электронных ключей. Управляющим сигналом для них является признак операции суммирования-вычитания СВ. На пороговый элемент DD65 этот сигнал поступает через инверторы DD63. Если сигнал - СВ суммирования-вычитания будет равен нулю - выполнение операции суммирования, то электронный ключ DD65 будет открыт, а ПЭ DD64 будет заперт, т.к. управляющий сигнал СВ поступает через инверторы DD63. На выходе порогового элемента DD61 сформируется перенос из старших разрядов в следующий больший по весу разряд, если на входе порогового элемента DD61 будет не менее двух единиц. Пороговый элемент DD62 вычисляет сумму одноразрядных двоичных чисел - ЗрiПЧ и ЗрiВЧ, а также перенос Pi+1 из младших разрядов в старшие. При суммировании через открытый элемент DD65 и схему ИЛИ DD66 разряд суммы Si поступит на вход блока 12 регистра результата. Если сигнал СВ равен единице, - это означает выполнение операции вычитания. Пороговые элементы DD60 и DD61 образуют схему вычитателя. С выхода элемента DD61 формируется заем из старших разрядов в младшие. С выхода элемента DD60 вычисляется разность поступивших на вход одноразрядного сумматора-вычитателя двоичных чисел ЗрiПЧ и ЗрiВЧ, а также заема Zi-1 из старших разрядов. Через открытый электронный ключ DD64 и пороговый элемент DD66 (схема ИЛИ) разряды разности Ri будут поступать на вход блока регистра результата. Если выполняется операция умножения, при этом входной управляющий сигнал УМН равен единичному значению, то логический элемент И DD57 будет открыт, через него результат от предыдущей операции сложение - РЕЗi поступит на вход сумматора элементов DD61, DD62, тем самым будет сформирован цикл, при котором будет происходит накопление суммы частичных произведений. В случае сигнала УМН, равным нулевому значению, логический элемент И DD57 будет закрыт. При выполнении операций суммирования, вычитания или деления на вход сумматора будет поступать двоичный разряд ЗрiВЧ через логическую схему ИЛИ DD58 (фиг.8).
Блок 11 регистра второго числа БРгВЧ представляет собой: систему логических элементов И, выполненных на пороговых элементах DD68, DD69, DD70, набор D-триггеров DD71, DD72, DD73, DD74, систему логических элементов ИЛИ, выполненных на пороговых элементах DD75, DD76, DD77, логический элемент ИЛИ DD67 (фиг.9). Блок 11 регистра второго числа БРгВЧ предназначен для хранения двоичных разрядов второго числа. Входными информационными сигналами блока являются - СУП информационный сигнал управления, поступающий с выхода блока 13 управления операциями с фиксированной запятой и двоичный код второго числа - информационный сигнал ВХЧ, поступающий с выхода блока 1 ввода чисел и кода операций. Входным управляющим сигналом блока является сигнал УМН - умножение, поступающий из блока 8 формирования знакового разряда результата. Этот сигнал поступает на инверсный вход каждого двухвходового логического элемента И системы пороговых элементов DD68, DD69, DD70. Выходным управляющим сигналом является сигнал ППР - признак пустого регистра, поступающий на вход блока 13 управления операциями с фиксированной запятой. Выходным информационным сигналом блока является информационный сигнал ВЧ - двоичные разряды второго числа (фиг.9). В блоке организован сдвиг двоичных разрядов числа на один разряд в сторону младшей части (вправо) с целью получения и анализа текущего младшего разряда второго числа при выполнении операции умножения. Запись информации осуществляется следующим образом: младшие разряды второго числа записываются в регистр в правую часть. Младший разряд заносится в Tpn, старший - в Тр1 (фиг.9). При каждом сдвиге вправо на один разряд происходит анализ регистра второго числа на наличие в нем значимых разрядов. Если есть хотя бы один разряд, равный единице, сигнал ППР - признак пустого регистра, равен единице, иначе сигнал ППР - принимает значение, равное нулю. Сигнал ППР поступает на вход блока 13 управления операциями с фиксированной запятой. На вход блока 11 регистра второго числа поступают ВХЧ двоичные разряды второго числа из блока 1 ввода чисел и кода операций. Блок 11 регистра второго числа управляется из блока 13 управления операциями с фиксированной запятой посредством управляющих сигналов. По сигналу ССБ - сигнал сброса блок 11 регистра второго числа происходит сброс D-триггеров в нулевое состояние. По сигналу СЗ - сигнал записи двоичных чисел, происходит запись разрядов в регистр второго числа. По сигналу ССД - сигнал сдвига происходит сдвиг разрядов второго числа на один разряд в сторону младшей части (вправо). На выходе самого правого триггера DD74 блока регистра второго числа формируется сигнал РМН текущий младший разряд второго числа, поступающий на вход блока 9 блока регистра первого числа (фиг.3). Набор элементов ИЛИ, выполненных на микросхемах DD75, DD76, DD77, выполняют собирательную функцию двоичного разряда входного числа ВХЧ и при осуществлении операции сдвига вправо на один разряд двоичного разряда, записанного в i-1 триггере. Выход i триггера поступает на вход i+1 элемента ИЛИ. Система логических элементов И DD68, DD69, DD70 выполняет функцию вентиля, управляющим сигналом которого является управляющий сигнал УМН - умножение. Если сигнал УМН равен нулевому значению, то система элементов И открыта, на прямые входы элементов поступают двоичные разряды второго числа, при этом выполняются операции: суммирование, вычитание или деление. Если сигнал УМН равен единичному значению, это означает, что выполняется операция умножения, в этом случае элементы И будут заперты. При этой операции анализируется поразрядно самый младший двоичный разряд второго числа, поступивший с выхода предыдущего триггера, который хранит двоичный разряд с наибольшим весом (фиг.9).
Блок 12 регистра результата содержит систему h - двухвходовых электронных ключей с инверсным входом - схем И - DD78, DD79, DD80, h - схем ИЛИ, выполненных на элементах DD81, DD82, DD83, логической схемы И с инверсным входом DD84, k-триггеров Tpk, где k - количество разрядов, необходимое для получения результата заданной точности: DD86, DD87, DD88 для хранения двоичных разрядов результата. А также в состав блока входит триггер Tp1 DD85, предназначенный для хранения знакового разряда результата (фиг.10). В блоке 12 регистра результата записывается результат в параллельном режиме при выполнении операций: суммирование, вычитание и умножение. Результат при делении - частное записывается последовательно, поразрядно. Входным управляющим сигналом блока 12 регистра результата является сигнал ДЕЛ, который поступает на инверсные входы логических схем И. Если этот сигнал равен нулевому значению, в этом случае выполняются операции: суммирование, вычитание или умножение, то электронные ключи - схемы И DD78, DD79, DD80 - будут открыты, т.к. этот сигнал поступает на инверсные входы. Информационный сигнал РЕЗ через открытые электронные ключи и схемы ИЛИ запишется в триггеры блока. Логический элемент DD84 в этом случае будет закрыт. Сигнал ДЕЛ поступает на прямой вход элемента DD84. В случае управляющего сигнала ДЕЛ, равному единичному значению, т.е. выполняется операция деление, то электронные ключи DD78, DD79, DD80 будут заперты, логический элемент И DD84 будет открыт. На вход этого элемента поступает управляющий сигнал ЗрОСТ - знаковый разряд остатка при выполнении операции деления, который будет формировать разряды частного. При записи частного в триггеры DD86, DD87, DD88 из блока управления 13 будет генерироваться сигнал СС - сдвига информации влево на один разряд. Первый разряд частного запишется в самый крайний, т.е. правый триггер. При поступлении сигнала сдвига СС разряды частного будут последовательно перемещаться влево до получения частного заданной точности. Если сигнал ЗрОСТ - знаковый разряд равен нулевому значению, то разряд частного равен единице, в случае равенства знакового разряда единице, разряд частного равен нулю. Перед началом работы сумматора-вычитателя по приходу из блока 13 управления операциями с фиксированной запятой информационного сигнала УПР происходит обнуление всех триггеров блока сигналом УС0. На входы триггеров, в которых хранится результат DD86, DD87, DD88, параллельно поступает сигнал сдвига информации влево на один разряд - СС. Информационный сигнал результата РЕЗ, поступающий из блока 10 сумматора-вычитателя, поступает на первые входы схем ИЛИ, затем на входы триггеров Tk DD86, DD87, DD88 блока 12 регистра результата. Полученный результат будет храниться в триггерах, составляющих регистр блока для хранения результата. На вторые входы схем ИЛИ поступает информационный сигнал ЦДЧ - признак, который отделяет целую часть от дробной. Этот сигнал генерируется в блоке 13 управления операциями с фиксированной запятой. В блок 12 регистра результата в начале записывается целая часть результата, затем признак целой части - двоичный код, например код запятой, в конце записывается дробная часть с учетом коэффициента точности - количества разрядов после запятой. На третьи входы схем ИЛИ поступает выходной сигнал с предыдущего триггера. Эта связь необходима для выполнения операции сдвига влево при последовательной записи двоичных разрядов частного при делении. На вход триггера Tp1 DD85 из блока 8 формирования знакового разряда поступит управляющий сигнал ЗРРЗ - знаковый разряд. После этого в триггер Tp1 DD85 запишется знаковый разряд результата - ЗРРЗ (фиг.10).
Логические условия: | |
X1: "СБРОС" | Х7: "ПДЧ" |
Х2: "СУМ" | Х8:"ЗрОСТ" |
Х3: "ВЫЧ" | Х9: "ЦДЧ" |
Х4: "ЗРПЧ ЗРВЧ" | X10: "РЕЗ" |
Х5: "ЗАЕМ" | X11: "ППР" |
Х6: "ДЕЛ" | Х12: "РМН" |
Операторы: | |
У1: "ПУСК:=1" | У16: "СВ:=1" |
У2: "РРФЗ:=1" | У17: "ОСТ:=ПЧ-ВЧ" |
У3: "БОФЗ:=ВХД" | У18: "ЦДЧ:=1" |
У4: "БРгПЧ:=ВХЧ" | У19: "ЦДЧ:=0" |
У5: "БРгВЧ:=ВХЧ" | У20: "БРгРЕЗ:=0" |
У6: "БФЗР:=КОП" | У21: "БРгРЕЗ:=1" |
У7: "СВ:=0" | У22: "БРгПЧ:=ОСТ" |
У8: "БСВ:=ПЧ" | У23: "БРгПЧ:=СДВ" |
У9: "БСВ:=ВЧ" | У24: "ОСТ:=ПЧ+ВЧ" |
У10: "РЕЗ:=ГТЧ-ВЧ" | У25: "ОСТ:=ПЧ-ВЧ" |
У11: "РЕЗ:=ВЧ-ПЧ" | У26: "БСВ:=УМН" |
У12: "ЗРРЗ:=ЗРВЧ" | У27: "БРгВЧ:=ССД" |
У13: "РЕЗ:=ПЧ+ВЧ" | У28: "БСВ:=ПЧ+БСВ" |
У14: "ЗРРЗ:=ЗРПЧ" | У29: "ЗРРЗ:=ЗРПЧ ЗРВЧ" |
У15: "БРгРЕЗ:=РЕЗ" | У30: "БРгРЕЗ:=СС" |
На фиг.13-20 представлены технические варианты блоков операционного автомата для выполнения операций над порядками чисел, представленных в формате с плавающей запятой.
На фиг.13 изображена структурная схема блока вычисления результата с плавающей запятой.
На фиг.14 представлен вариант технической реализации блока определения операций порядков с плавающей запятой.
На фиг.15 показана функциональна схема блока регистра первого порядка числа.
На фиг.16 показана принципиальная схема многоразрядного сумматора-вычитателя порядков и коммутатора на нейронах и логических элементах.
На фиг.17 изображена функциональная схема одноразрядного сумматора-вычитателя, выполняющего операции суммирования или вычитания порядков со знаковыми разрядами чисел.
На фиг.18 изображена функциональная схема одноразрядного сумматора-вычитателя, выполняющего операции суммирования или вычитания порядков с i-ми разрядами чисел.
На фиг.19 показана функциональна схема блока регистра второго порядка числа.
На фиг.20 представлен вариант технической реализации блока регистра результата порядков чисел.
На фиг.21 - содержательная ГСА работы устройства.
На фиг.22 - размеченная ГСА работы устройства.
Для описания алгоритма работы блока 95 управления операциями порядков используются следующие идентификаторы:
72. БОПРПЗ - блок выполнения операций порядков с плавающей запятой.
73. БООППЗ - блок определения операций порядков с плавающей запятой.
74. БРгППР - блок регистра первого порядка.
75. БСВПР - блок сумматора-вычитателя порядков.
76. БРгВПР - блок регистра второго порядка.
77. БРгРПР - блок регистра результата порядков.
78. БУОППР - блок управления операциями порядков.
79. ВХДПР - входные данные порядков чисел с плавающей запятой и код операций порядков.
80. ВХЧПР - входные порядки чисел с плавающей запятой.
81. КОППР - код операций порядков.
82. СВПР - сигнал суммирования-вычитания порядков.
83. ППР - первый порядок чисел.
84. ВПР - второй порядок чисел.
85. ЗРПР - знаковый разряд порядка результата.
86. РЕЗПР - результат выполнения операций над порядками чисел.
87. ЕДН - единичное значение, поступающее из блока управления операциями порядков.
88. УППР - информационный сигнал управления работой блока регистра первого порядка.
89. ППРП - признак пустого регистра блока регистра второго порядка.
90. СУППР - информационный сигнал управления работой блока регистра второго порядка.
91. СВПР - сигнал выравнивания порядков.
92. УПРП - информационный сигнал управления работой блока регистра результата порядков.
93. ДЛТ - управляющий сигнал дельта, полученной как разность между порядками.
94. РРПЗ - сигнал разрешения работы блока управления с плавающей запятой.
95. ОРБПЗ - сигнал окончания работы блока управления с плавающей запятой.
96. РПЗПР - результат порядка в арифметике с плавающей запятой.
97. СУММН - признак суммы мантисс.
98. ВЫЧМН - признак вычитания мантисс.
99. УМНМН - признак умножения мантисс.
100. ДЕЛМН - признак деления мантисс.
101. ППР - двоичный код первого порядка числа.
102. ЗРППРi - выходные двоичные разряды первого порядка.
103. РЗАПП - сигнал разрешения записи информации в триггеры регистра блока регистра первого порядка.
104. ОБЛП - сигнал обнуления триггеров регистра блока регистра первого порядка.
105. ВЫДП - сигнал разрешения выдачи информации из триггеров регистра блока регистра первого порядка.
106. СИНХП - сигнал синхронизации триггеров регистра блока регистра первого порядка.
107. Дрпi - входные двоичные разряды первого порядка.
108. ЗРППР - знаковый разряд первого порядка.
109. ЗРВПР - знаковый разряд второго порядка.
110. ЗрППРi - двоичные разряды первого порядка.
111. ЗрВПРi - двоичные разряды второго порядка.
112. ЗАЕМ - двоичный разряд заема из старшего разряда при выполнении операции вычитания.
113. Pi - перенос из младших разрядов в старшие.
114. Zi - заем из старших разрядов в младшие.
115. Ri - двоичный разряд разности при выполнении операции вычитания.
116. Si - двоичный разряд суммы при выполнении операции суммирования.
117. СРПР - результат суммирования или разности порядков.
118. ППРП - признак "пустого" регистра порядков.
119. ЗрВПРi - выходные знаковые двоичные разряды второго порядка.
120. ВПРi - входные двоичные разряды второго порядка.
121. ССБПР - управляющий сигнал сброса в нулевое состояние триггеров блока регистра второго порядка.
122. СЗПР - сигнал разрешения записи информации в триггеры регистра блока регистра второго порядка.
123. ВЫДПР - сигнал разрешения выдачи информации из триггеров регистра блока регистра второго порядка.
124. РЕЗПРi - результат порядков.
125. УТОПР - сигнал установки в нулевое состояние триггеров регистра блока регистра результата порядков.
126. ЗнРПР - выходной знаковый разряд порядков из триггера блока регистра результата порядков.
127. ПРДi - выходные двоичные разряды триггеров блока регистра результата порядков.
Работа алгоритма блока управления операциями порядков арифметического вычислителя
Содержательная ГСА управления приведена на фиг.21 и отражает работу блока 95 управления операциями порядков (фиг.13).
Блок 58 является начальным блоком алгоритма.
В блоке 59 алгоритма осуществляется подача внешнего сигнала РРПЗ - разрешения работы блока определения операций порядков с плавающей запятой. По команде РРПЗ:=1 блок готов к работе.
В блоке 60 алгоритма по команде ОРБПЗ:=0 происходит установка сигнала окончания работы блока 95 управления определения операций с плавающей запятой в нулевое состояние.
В блоке 61 алгоритма по команде БРгППР:=ВХЧПР блок регистра первого порядка принимает числовое значение первого порядка, по команде БРгВПР:=ВХЧПР блок регистра второго порядка принимает двоичный код второго порядка, по команде БООППЗ:=КОППР на вход блока определения операций порядков с плавающей запятой поступает код операции порядков для выполнения операции дешифрации и формирования режимов работы вычислителя (фиг.14).
В блоках 62-71 алгоритма происходит вычисление разности порядков, вычитание из разности порядков единицы до получения нулевого значения в блоке регистра результата порядков.
В блоке 62 алгоритма анализируется код операции суммирования мантисс - СУММАН или вычитания мантисс - ВЫЧМАН. При установлении пользователем операции суммирования или вычитания чисел над порядками будет выполнена операция вычитания. Если установлены операции умножения или деления чисел - выход НЕТ блока, то осуществляется переход на блок 72 алгоритма. Если установлена операция СУММАН или ВЫЧМАН суммирования или вычитания мантисс - выход ДА, то осуществляется переход на блок 63 алгоритма.
В блоке 63 алгоритма по команде СВПР:=1 устанавливается сигнал СВПР - суммирование-вычитание порядков в единичное значение, тем самым выполняется операция вычитания порядков в блоке сумматора-вычитателя порядков.
В блоке 64 алгоритма по командам БСВПР:=ППР и БСВПР:=ВПР блок сумматора-вычитателя порядков принимает двоичные значения первого и второго порядков соответственно для выполнения операции вычитания.
В блоке 65 алгоритма по команде РЕЗПР:=ППР-ВПР вычисляется разность между первым ПНР порядком и вторым порядком ВПР чисел.
В блоке 66 алгоритма анализируется сигнал ЗАЕМ - результат вычитания первого и второго порядков. Если ЗАЕМ равен нулю - выход НУЛЬ блока, то осуществляется переход на блок 68 алгоритма. В этом случае при выполнении операции вычитании первый порядок больше второго, разность между числами получена положительная. Если сигнал ЗАЕМ равен единице - выход ЕДИНИЦА, то это означает, что первый порядок меньше второго и для получения положительной разности необходимо поменять местами входные числа и от второго большего порядка вычесть первый меньший.
В блоке 67 алгоритма по команде РЕЗПР:=ВПР-ППР вычисляется разность между вторым большим порядком ВПР и первым меньшим ППР.
Блоки 68-70 алгоритма формируют цикл, в котором анализируется разность порядков. Выходом из цикла является нулевое значение разности между порядками.
В блоке 68 алгоритма анализируется результат вычитания порядков - РЕЗПР. Если разность порядков равна нулю РЕЗПР=0 - выход блока ДА, то осуществляется переход на блок 71 алгоритма. Если разность порядков не равна нулевому значению - выход - НЕТ, то осуществляется переход на блок 69 алгоритма.
В блоке 69 алгоритма по команде БСВПР:=БСВПР-ЕДН вычисляется разность между содержимым блока сумматора-вычитателя порядков и единицей, поступающей из блока управления операциями порядков.
В блоке 70 алгоритма по команде БУОППР:=ДЛТ блок управления операциями порядков принимает разность между порядками - сигнал дельта ДЛТ. По выходу из блока 70 осуществляется переход на блок 68 алгоритма.
В блоке 71 алгоритма по команде БРгВПР:=ССБПР блок регистра второго порядка принимает сигнал обнуления из блока управления операциями порядков. В результате этой операции все триггеры блока устанавливаются в нулевое состояние.
В блоках 72-77 алгоритма происходят вычисление суммы порядков, формирование результата и его знакового разряда, а также анализируется первый разряд мантиссы на единичное значение.
В блоке 72 алгоритма анализируется сигнал операции умножения мантисс - УМНМАН. Если установлена операция умножения мантисс - выход ДА, то осуществляется переход на блок 73 алгоритма, если выбрана операция деления - выход НЕТ, то осуществляется переход на 78 алгоритма.
В блоке 73 алгоритма по команде СВПР:=0 устанавливается сигнал СВПР - суммирование-вычитание порядков в нулевое значение, тем самым выполняется операция суммирования порядков в блоке сумматора-вычитателя порядков.
В блоке 74 алгоритма по командам БСВПР:=ППР и БСВПР:=ВПР блок сумматора-вычитателя порядков принимает двоичные значения первого и второго порядков для выполнения операции суммирования.
В блоке 75 алгоритма по команде РЕЗПР:=ППР+ВПР вычисляется сумма между первым ПНР порядком и вторым порядком ВПР чисел.
В блоке 76 алгоритма анализируется первый двоичный разряд мантиссы результата ПРМАН=1 на единичное значение. Если первый старший разряд мантиссы результата не равен единичному значению, то полученный результат денормализован. Мантиссу результата необходимо сдвигать влево до получения единичного значения в первом старшем разряде числа. По выходу НЕТ блока осуществляется сдвиг мантиссы числа и от порядка вычитается единица. Блоки 76 и 77 алгоритма формируют цикл по нормализации мантиссы и порядка результата. По выходу ДА блока осуществляется переход на блок 81 алгоритма.
В блоке 77 алгоритма по команде БСВПР:=БСВПР-ЕДН блок сумматора-вычитателя порядков принимает значение разности между предыдущим значением блока и единицы, поступающей из блока управления операциями порядков. Эти циклические операции - сдвиг мантиссы результата влево и вычитание из порядка единицы - нормализуют результат, устанавливают его в определенных пределах.
В блоках 78-80 алгоритма выполняются операции с порядками операндов при выполнении операции деления между числами.
В блоке 78 алгоритма по команде СВПР:=1 устанавливается сигнал СВПР - суммирование-вычитание порядков в единичное значение, тем самым выполняется операция вычитания порядков в блоке сумматора-вычитателя порядков.
В блоке 79 алгоритма по командам БСВПР:=ППР и БСВПР:=ВПР блок сумматора-вычитателя порядков принимает двоичные значения первого и второго порядков соответственно для выполнения операции вычитания.
В блоке 80 алгоритма по команде РЕЗПР:=ППР-ВПР вычисляется разность между первым ППР порядком и вторым порядком ВПР чисел. По выходу блока 80 алгоритма осуществляется переход на блок 76 алгоритма.
В блоке 81 алгоритма по команде БРгРПР:=РЕЗПР блок регистра результата порядков принимает значение результата из блока сумматора-вычитателя порядков.
Блок 82 алгоритма является конечным.
Работа блока операций порядков с плавающей запятой заключается в следующем.
Внешние управляющие сигналы "РРПЗ" и "ОРБПЗ" поступают в блок 95 управления операций порядков с плавающей запятой.
Блок 95 управления выполняет операции сумирования и вычитания порядков чисел, представленных с плавающей запятой. При выполнении операций суммирования или вычитания чисел с плавающей запятой порядки сравниваются, при этом от большего порядка вычитается меньший. Полученная разность используется блоком управления операциями порядков с плавающей запятой для денормализации меньшей мантиссы числа, т.е. сдвига вправо. При умножении чисел порядки суммируются. При делении порядки вычитаются. После выполнения арифметических операций всегда производится анализ блоком управления операций порядков с плавающей запятой на денормализацию результата. Мантисса и порядок результата должны быть представлены в нормальной форме и в установленных пределах.
На фиг.13 арифметического вычислителя представлена структурная схема блока 89 операций порядков с плавающей запятой. На фиг.13 показаны блоки и связи в виде управляющих и информационных сигналов между блоками. Этот блок содержит блок 90 определения операций порядков с плавающей запятой БООППЗ, блок 91 регистра первого порядка БРгППР, блок 92 сумматор-вычитатель порядков БСВПР, блок 93 регистра второго порядка БРгВПР, блок 94 регистра результата порядков БРгРПР, блок 95 управления операциями порядков.
Блок 90 определения операций порядков с плавающей запятой БООППЗ (фиг.14) содержит логическую схему ИЛИ, выполненную на пороговом элементе DD96. На вход схемы ИЛИ поступает код операций порядков - КОППР: суммирование порядков - СУМПР, вычитание порядков - ВЫЧПР, умножение порядков - УМНПР, деление порядков - ДЕЛПР. Если код операций порядков КОППР установлен как сумма, вычитание или деление, то выходной сигнал схемы ИЛИ суммирование-вычитание порядков - СВПР принимает значение единицы. При этом выполняется операция вычитания в блоке сумматора-вычитателя порядков БСВПР. Указанные сигналы поступают на прямые входы порогового элемента (ПЭ). Если определена операция умножения чисел, то на выходе схемы ИЛИ формируется нулевое значение сигнала суммирование-вычитание порядков - СВПР, т.е. выполняется операция суммирования в блоке БСВПР. Сигнал УМНПР поступает на инверсный вход порогового элемента.
Блок 91 регистра первого порядка (БРгППР) (фиг.15) содержит р-триггеров Тр, где р - количество разрядов входного числа, выполненных на элементах: DD97, DD98, DD99, DD100, двухвходовый пороговый элемент ИЛИ DD101. Блок 91 регистра первого порядка предназначен для хранения двоичного кода первого порядка. Перед началом работы вычислителя по приходу из блока 95 управления операциями порядков с плавающей запятой информационного сигнала УППР происходит обнуление всех триггеров блока управляющим сигналом ОБЛП, поступающего параллельно на все входы триггеров блока. По приходу из блока 1 ввода чисел и кода операций информационного сигнала ВХЧПР - данные первого порядка осуществляется загрузка двоичного кода в регистр блока 91 БРгППР (фиг.15). Информационный сигнал ВХЧПР состоит из сигналов Дрп1, Дрп2, Дрп3, ..., Дрпр. При поступлении управляющего сигнала РЗАПП - на входы триггеров Тр1, Тр2, Тр3, ..., Трр из блока 95 управления операциями порядков с плавающей запятой, разрешающего записать информацию, происходит загрузка поступившего двоичного кода числа в триггеры блока. Управляющий сигнал ВЫДП - выдача порядка генерируется блоком 95 управления, поступает на вход двухвходового порогового элемента ИЛИ DD101. Управляющий сигнал СИНХП, поступающий на вход двухвходового порогового элемента ИЛИ DD101, генерируется блоком управления 95. Управляющий сигнал ВЫДП - выдача порядка генерируется блоком 95 управления, поступает на вход двухвходового порогового элемента ИЛИ DD101. Выходной информацией блока 91 регистра первого порядка является информационный сигнал ППР - первый порядок, поступающий на вход блока 92 сумматора-вычитателя порядков (фиг.13). Выходной информационный сигнал ППР состоит из управляющих сигналов ЗрППР1, ЗрППР2, ЗрППР3, ..., ЗрППРр, поступающих с выходов триггеров Тр1, Тр2, Тр3, ..., Трр (фиг.15).
Блок 92 сумматор-вычитатель порядков БСВПР состоит из двух частей-коммутатора (переключателя) и сумматора-вычитателя (фиг.16). Коммутатор состоит из элементов И-ИЛИ, построенных на микросхемах DD102, DD103, DD104, DD105, DD106, DD107, DD108, DD109, сумматор-вычитатель построен на комбинационных схемах СУМ-ВЫЧi, выполненных на элементах DD110, DD111, DD112, DD113. Входными величинами в блок 92 сумматор-вычитатель порядков являются двоичные разряды порядков чисел: ППР - первый двоичный порядок и ВПР - второй двоичный порядок и знаковые разряды порядков: ЗРППР - знаковый разряд первого порядка, ЗРВПР - знаковый разряд второго порядка. Двоичные разряды ЗрiППР, ЗрiВПР поступают поразрядно на входы коммутатора. Элементы DD102, DD103, DD110 выполняют сложение или вычитание знаковых разрядов ЗРППР и ЗРВПР двоичных чисел (фиг.16). Управляющим входом для комбинационных схем СУМ-ВЫЧi является сигнал СВПР - суммирование-вычитание порядков, поступающий из блока 90 определения операций порядков с плавающей запятой (фиг.13). Управляющий сигнал СВПР поступает параллельно на входы всех комбинационных схем СУМ-ВЫЧi. Если сигнал СВПР равен нулю, то комбинационные схемы выполняют операцию суммирования, в случае равенства сигнала СВПР единице выполняется операция вычитания. Сумматор-вычитатель выполняет операции суммирования или вычитания, знаковые разряды порядков не участвуют в формировании результата. При выполнении операции вычитания необходимо от первого порядка ППР вычесть второй порядок ВПР, если ЗАЕМ, выходной сигнал комбинационной схемы СУМ-ВЫЧ1 DD110 равен единице, то это означает, что первый порядок ППР по модулю меньше второго ВПР. В этом случае необходимо поменять местами входные числа. Знаковый разряд результата принимает значение большего по модулю порядка - ЗЗРПР. Управляющий сигнал ЗАЕМ, поступающий параллельно на входы элементов И-ИЛИ, коммутирует входы ЗрiППР и ЗрiВПР таким образом, что теперь происходит вычитание от второго порядка ЗрiВПР первого порядка ЗрiППР. В этом случае происходит вычитание от большего порядка меньшего. Заема из старшего разряда при этом не будет. Выходным сигналом блока является сигнал знакового разряда результата - ЗЗРПР. При сложении порядков с одинаковыми знаковыми разрядами сигнал ЗЗРПР равен знаковому разряду одному из порядков, в данном случае знаковому разряду первого порядка, т.к. является выходным сигналом схемы DD102. При вычитании порядков с разными знаковыми разрядами сигнал ЗЗРПР принимает значение большего по модулю порядка, что также является выходом схемы И-ИЛИ элемента DD102. Выходным информационным сигналом блока являются двоичные разряды результата РЕЗПi (фиг.16).
Одноразрядный сумматор-вычитатель СУМ-ВЫЧ1 (фиг.17) содержит сумматор по модулю два, выполненный на формальном нейроне - элемент DD114, пороговые элементы DD115, DD116, DD117, инвертор DD118, логические схемы И DD119, DD120, логическую схему ИЛИ DD121. Основная функция указанного блока - формирование ЗАЕМА из старшего разряда. Этот сигнал определяет правильность выполнения операции вычитания, т.е. от большего по модулю порядка вычитается меньший. На пороговом элементе (ПЭ) DD116 формируются перенос при сложении и заем при вычитании. Пороговые элементы DD116 и DD117 составляют сумматор [1, 2]. На входы этих пороговых элементов поступают двоичные знаковые разряды первого и второго порядков: ЗРППР и ЗРВПР, а также перенос Р2 из младшего разряда в старший (фиг.17). Двоичные разряды поступают поразрядно: ЗРППР - знаковый разряд первого порядка, ЗРВПР - знаковый разряд второго порядка, Р2 - перенос, Z1 - заем, а также признак суммирования-вычитания порядков сигнал - СВПР (фиг.17). Пороговые элементы DD115 и DD116 образуют схему вычитателя знаковых разрядов. Логические элементы DD119 и DD120 выполняют роль электронных ключей. Управляющим сигналом для них является признак суммирования-вычитания порядков СВПР. На пороговый элемент DD119 этот сигнал поступает на прямой вход. На пороговый элемент DD120 этот сигнал поступит через инвертор DD118. Если признак операции СВПР суммирования-вычитания порядков будет равен нулю - выполнение операции суммирования, то электронный ключ DD120 будет открыт, а ПЭ DD119 будет заперт, т.к. управляющий сигнал СВПР поступает через инвертор DD118 на вход логического элемента И DD120. На выходе порогового элемента DD116 сформируется перенос, если на входе порогового элемента DD114 будет не менее двух единиц. Пороговый элемент DD117 вычисляет сумму одноразрядных двоичных чисел - ЗРППР и ЗРВПР а также перенос Р2 в старший разряд. Если сигнал СВПР равен единице, что означает выполнение операции вычитания. Пороговые элементы DD115 и DD116 образуют схему вычитателя. С выхода элемента DD116 формируется ЗАЕМ из старших разрядов в младшие. С выхода элемента DD115 вычисляется разность поступивших на вход одноразрядного сумматора-вычитателя двоичных чисел - ЗРППР и ЗРВПР, а также заема Z1 из старших разрядов в младшие (фиг.17). Через открытый электронный ключ DD119 и пороговый элемент DD121 (схема ИЛИ) будут формироваться разряды разности порядков в виде выходного двоичного сигнала ЗРПР (фиг.17). Выходной сигнал ЗАЕМ, являющийся выходом элемента DD116, поступает на прямые входы коммутатора (фиг.16). При выполнении операции вычитания сигнал ЗАЕМ управляет процессом вычитания от большего числа по модулю меньшего. Если сигнал ЗАЕМ равен единичному значению, в этом случае от меньшего числа по модулю вычитается большее, тогда необходимо поменять местами входные числа на входах коммутатора (фиг.16). В случае равенства этого сигнала нулевому значению, менять местами входные числа не надо, при этом от большего числа вычитается меньшее (фиг.16, 17).
Одноразрядный сумматор-вычитатель СУМ-ВЫЧi (фиг.18) суммирования-вычитания содержит сумматор по модулю два, выполненный на формальном нейроне - элемент DD122, пороговые элементы DD123, DD124, DD125, инвертор DD126, логические схемы И DD127, DD128, логическую схему ИЛИ DD129. На пороговом элементе (ПЭ) DD124 формируются перенос при сложении или заем при вычитании. Пороговые элементы DD124 и DD125 составляют сумматор [1, 2]. На входы этих пороговых элементов поступают двоичные разряды порядков ЗрППРi и ЗрВПРi, а также перенос Pi+1 из младших разрядов в старшие и двоичный сигнал единица - ЕДН. Сигнал единица - ЕДН поступает на вход f ого крайнего, правого сумматора (фиг.16). Этот необходим для выравнивания порядков при выполнении операции суммирования или вычитания порядков. При выполнении операции умножения или деления чисел двоичный сигнал ЕДН равен нулевому значению. Сигнал ЕДН формируется и поступает с выхода блока 95 управления операциями с плавающей запятой (фиг.13). Двоичные разряды поступают поразрядно: ЗрППР1 - разряд первого порядка, ЗрВПР1 - разряд второго порядка, Pi+1 - перенос, Zi-1 - заем, а также признак суммирования-вычитания порядков СВПР (фиг.16, 18). Пороговые элементы DD123 и DD124 образуют схему вычитателя чисел от большего порядка меньшего. Логические элементы DD127 и DD128 выполняют роль электронных ключей. Управляющим сигналом для них является признак операции суммирования-вычитания порядков СВПР. На пороговый элемент DD128 этот сигнал поступает через инвертор DD126. Если сигнал - СВПР суммирования-вычитания порядков будет равен нулю - выполнение операции суммирования, то электронный ключ DD128 будет открыт, а ПЭ DD127 будет заперт, т.к. управляющий сигнал СВПР поступает через инверторы DD126. На выходе порогового элемента DD124 сформируется перенос из старших разрядов в следующий больший по весу разряд, если на входе порогового элемента DD122 будет не менее двух единиц. Пороговый элемент DD125 вычисляет сумму одноразрядных двоичных чисел - ЗрППРi и ЗрВПРi, а также перенос Pi+1 из младших разрядов в старшие. При суммировании через открытый элемент DD128 и схему ИЛИ DD129 разряд суммы Si поступит на вход блока 94 регистра результата порядков (фиг.13). Если сигнал СВПР равен единице, что означает выполнение операции вычитания. Пороговые элементы DD123 и DD124 образуют схему вычитателя. С выхода элемента DD124 формируется заем из старших разрядов в младшие. С выхода элемента DD123 вычисляется разность поступивших на вход одноразрядного сумматора-вычитателя двоичных чисел - ЗрППРi и ЗрВПРi, а также заема Zi-1 из старших разрядов. Через открытый электронный ключ DD127 и пороговый элемент DD129 (схема ИЛИ) разряды разности Ri будут поступать на вход блока 94 регистра результата порядков (фиг.13, 18).
Блок 93 регистра второго порядка БРгВПР представляет собой логический элемент ИЛИ DD130 и набор D-триггеров DD131, DD132, DD133, DD134 (фиг.19). Блок 93 регистра второго порядка БРгВПР предназначен для хранения двоичных разрядов второго порядка. Входными информационными сигналами блока являются - СУППР информационный сигнал управления порядками, поступающий с выхода блока 95 управления операциями порядков с плавающей запятой, и двоичный код второго порядка - информационный сигнал ВХЧПР, поступающий с выхода блока 1 ввода чисел и кода операций. Выходным управляющим сигналом является сигнал ППРП - признак пустого регистра, поступающий на вход блока 95 управления операциями порядков с плавающей запятой. Выходным информационным сигналом блока является информационный сигнал ВПР - двоичные разряды второго порядка (фиг.19). При записи информации в регистр младшие разряды второго порядка записываются в правую часть. Младший разряд заносится в Tph, старший - в Тр1 (фиг.19). В регистре происходит анализ значений второго порядка на наличие в нем значимых двоичных разрядов. Если есть хотя бы один разряд, равный единице, сигнал ППРП - признак пустого регистра равен единице, иначе сигнал ППРП принимает значение, равное нулю. Сигнал ППРП поступает на вход блока 95 управления операциями порядков с плавающей запятой. На входы триггеров блока 93 регистра второго порядка поступают двоичные разряды второго порядка - ВХЧПР из блока 1 ввода чисел и кода операций. Блок 93 регистра второго порядка управляется из блока 95 управления операциями порядков с плавающей запятой посредством управляющих сигналов. По сигналу ССБПР сигнал сброса, блока 93 регистра второго порядка, происходит сброс D-триггеров в нулевое состояние. По сигналу СЗПР - сигнал записи двоичных чисел, происходит запись разрядов в регистр второго порядка. По сигналу ВЫДПР - сигнал выдачи, происходит выдача разрядов второго порядка с выходов триггеров блока (фиг.19).
Блок 94 регистра результата порядков БРгРПР содержит: v - триггеров Tpv, где v - количество разрядов, необходимое для получения результата порядков заданной точности; Тр2, Тр3, ..., Tpv, выполненные на элементах DD136, DD137, ..., DD138; многовходовую схему ИЛИ, выполненную на пороговом элементе DD139; двухвходовый пороговый элемент И, выполненный на микросхеме DD140. Триггеры блока служат для хранения двоичных разрядов результата порядков. В состав блока входит триггер Тр1 DD135, предназначенный для хранения знакового разряда результата порядков (фиг.20). В блоке 94 регистра результата порядков результат записывается в параллельном режиме при выполнении операций: суммирование и вычитание. Входной информационный сигнал РЕЗПР, состоящий из одноразрядных двоичных сигналов: РЕЗПР1, РЕЗПР2, ..., РЕЗПРv, запишется в триггеры блока. Перед началом работы сумматора-вычитателя по приходу из блока 95 управления операциями порядков с плавающей запятой информационного сигнала УПВП происходит обнуление всех триггеров блока сигналом УТ0ПР, поступающего параллельно на все входы триггеров. На входы триггеров, в которых хранится результат порядков DD136, DD137, DD138, параллельно поступает сигнал разрешения записи информации в триггеры блока - РАЗПР. Полученный результат порядков будет храниться в триггерах, составляющих регистр блока для хранения результата. На вход триггера Tp1 DD135 из блока 92 сумматора-вычитателя поступит управляющий сигнал ЗРПР - знаковый разряд результата порядков. Этот сигнал запишется в триггер Tp1 DD135 блока регистра результата порядков (фиг.20). При выполнении операций над числами с плавающей запятой - сложения или вычитания - порядки в этом случае сравниваются с помощью операции вычитания, от большего по модулю порядка вычитается меньший по модулю. Разность между порядками записывается в триггера регистра блока. Мантиссу меньшего числа необходимо денормализовать путем операции сдвига вправо, количество сигналов сдвига определяет разность между порядками. На вход схемы ИЛИ элемента DD139 блока поступает выходной сигнал - результат с плавающей запятой порядков - РПЗПР, состоящий из двоичных сигналов ПРД1, ПРД2, ..., ПРДv. Схема ИЛИ определяет нулевое значение в триггерах блока. Если в триггерах не нулевое значение, то процесс денормализации мантиссы меньшего числа будет продолжен. От разности, полученной между порядками, каждый раз вычитается единица в блоке 92 сумматора-вычитателя порядков (фиг.13). Схема И, выполненная на пороговом элементе DD140, выполняет функцию электронного ключа, управляющим сигналом является вход СВПР, поступающий из блока 95 управления операциями порядков с плавающей запятой (фиг.13, 20), при выполнении операций сложения или вычитания чисел этот сигнал равен единице, электронный ключ при этом открыт. Информационным входом электронного ключа является выходной сигнал схемы ИЛИ DD139. Выходной двоичный сигнал электронного ключа DD140 дельта - разность между порядками - ДЛТ поступает на вход блока 95 управления операциями порядков с плавающей запятой. Если сигнал дельта ДЛТ равен нулевому значению, то порядки чисел выровнены и при этом денормализация меньшей мантиссы завершена. После этого выполняется операция сложения или вычитания между мантиссами. В случае выполнения операций умножения или деления чисел порядки суммируются или вычитаются соответственно. При операциях умножения или деления электронный ключ И DD140 заперт, управляющий сигнал СВПР равен нулевому значению. Результат этих операций записывается в триггеры регистра блока 94 и анализа на нулевое значение информации не происходит (фиг.20).
Логические условия: | |
Х13: "СУММАН или ВЫЧМАН" | Х16: "УМНМАН" |
Х14: "ЗАЕМ" | X17: "ПРМАН" |
X15: "РПЗПР" | |
Операторы: | |
У31: "РРПЗ:=1" | У39: "РЕЗПР:=ППР-ВПР" |
У32: "ОРБПЗ:=0" | У40: "РЕЗПР:=ВПР-ППР" |
У33: "БРгППР:=ВХЧПР" | У41: "БСВПР:=БСВПР-ЕДН" |
У34: "БРгВПР:=ВХЧПР" | У42: "БУОППР:=ДЛТ" |
У35: "БООППЗ:=КОППР" | У43: "БРгВПР:=ССБПР" |
У36: "СВПР:=1" | У44: "СВПР:=0" |
У37: "БСВПР:=ППР" | У45: "РЕЗПР:=ППР+ВПР" |
У38: "БСВПР:=ВПР" | У46: "БРгРПР:=РЕЗПР" |
На фиг.23 представлена структурная схема блока операций с плавающей запятой.
На фиг.24 изображена структурная схема блока операций мантисс с плавающей запятой.
На фиг.25 изображена функциональная схема блока формирования знакового разряда результата с плавающей запятой.
На фиг.26 показана функциональна схема блока регистра первой мантиссы числа с плавающей запятой.
На фиг.27 показана принципиальная схема многоразрядного сумматора-вычитателя и коммутатора на нейронах и логических элементах в арифметике с плавающей запятой.
На фиг.28 изображена функциональная схема одноразрядного сумматора-вычитателя, выполняющего операции суммирования или вычитания со знаковыми разрядами мантисс входных чисел.
На фиг.29 изображена функциональная схема одноразрядного сумматора-вычитателя, выполняющего операции суммирования или вычитания с i-ми разрядами мантисс.
На фиг.30 показана функциональная схема блока регистра второй мантиссы числа.
На фиг.31 представлен вариант технической реализации блока регистра результата мантисс в арифметике с плавающей запятой.
На фиг.32а, 32б - содержательная ГСА работы устройства.
На фиг.33а, 33б - размеченная ГСА работы устройства.
На фиг.23-31 представлены технические варианты блоков операционного автомата для выполнения операций над мантиссами чисел, представленных в формате с плавающей запятой.
Для описания алгоритма работы блока 147 управления операциями с плавающей запятой используются следующие идентификаторы:
128. БОМПЗ - блок выполнения операций с плавающей запятой.
129. БУОПЗ - блок управления операциями с плавающей запятой.
130. БРгПМН - блок регистра первой мантиссы.
131. БСВМН - блок сумматор-вычитатель мантисс.
132. БРгВМН - блок регистра второй мантиссы.
133. БФЗРМН - блок формирования знакового разряда мантисс.
134. БРгРМН - блок регистра результата мантисс.
135. ЗРПМН - знаковый разряд первой мантиссы.
136. ЗРВМН - знаковый разряд второй мантиссы.
137. ЗЗРМ - знаковый разряда большей по модулю мантиссы.
138. ЗРРЗМ - знаковый разряд результата мантиссы.
139. РЕЗМН - окончательный результат мантиссы.
140. ПМН - первая мантисса.
141. ВМН - вторая мантисса.
142. ОСМН - остаток при делении мантисс.
143. ПДЧМ - признак дробной части при делении мантисс.
144. ЦДМi - двоичные разряды признака дробной части мантиссы.
145. ЦДЧМ - целая и дробная часть результата при делении мантисс.
146. УПРМ - сигналы управления в блок регистра результата мантисс.
147. СУПМН - сигналы управления блока регистра второй мантиссы.
148. УПМН - сигналы управления блока регистра первой мантиссы.
149. РПЗМН - результат мантисс с плавающей запятой.
150. РМНМ - разряд множителя при умножении мантисс.
151. КОПМН - код операции мантисс (СУМ, ВЫЧ, ДЕЛ, УМН).
152. УМНМН - операция умножения мантисс.
153. СУММН - операция суммирования мантисс.
154. ВЫЧМН - операция вычитания мантисс.
155. ДЕЛМН - операция деления мантисс.
156. ЗрВМНi - двоичные разряды второй мантиссы.
157. ЗрПМНi - двоичные разряды первой мантиссы.
158. ЗРПМН - знаковый разряд первой мантиссы.
159. ЗРВМН - знаковый разряд второй мантиссы.
160. ЗрОСМН - знаковый разряд остатка при делении мантисс.
161. ППРМН - признак пустого регистра второй мантиссы.
162. СНМН - сигнал нормализации мантиссы.
163. РЗАМН - сигнал разрешения записи информации в регистр первой мантиссы блока регистра первой мантиссы.
164. ОБЛМН - сигнал обнуления триггеров регистра первой мантиссы блока регистра первой мантиссы.
165. СДВМН - сигнал сдвига информации влево на один разряд регистра первой мантиссы блока регистра первой мантиссы.
166. ВХЧМН - входные числа мантисс в арифметике с плавающей запятой.
167. РПЗ - результат в арифметике с плавающей запятой.
168. РПЗПР - результат с плавающей запятой порядков.
169. РПЗМН - результат с плавающей запятой мантисс.
170. СВМН - признак операций суммирования или вычитания мантисс.
171. ЗрMHi - двоичные разряды остатка мантисс.
172. ДрМНi - двоичные разряды первой мантиссы числа.
173. ЗАЕМ - управляющий сигнал заема из старших разрядов при вычитании мантисс.
174. РЕЗМНi - двоичные разряды результата мантиссы.
175. Pi - перенос из младших разрядов в старшие.
176. Zi - заем из старших разрядов в младшие.
177. Ri - двоичный разряд разности при выполнении операции вычитания мантисс.
178. Si - двоичный разряд суммы при выполнении операции суммирования мантисс.
179. ССБМ - сигнал сброса триггеров блока второй мантиссы.
180. СЗМ - сигнал разрешения записи информации в триггеры блока второй мантиссы.
181. ССДМ - сигнал сдвига информации вправо на один разряд блока второй мантиссы.
182. ДМНi - входная информация триггеров блока второй мантиссы.
183. ЗрВМНi - выходная информация триггеров блока второй мантиссы.
184. ЗнРМ - выходное знаковое значение результата мантисс.
185. СГСМ - сигнал сдвига информации влево на один разряд блока результата мантисс.
186. УС0М - установка в нулевое значение триггеров блока результата мантисс.
187. MAPi - входные двоичные разряды мантиссы.
188. МАНi - выходная двоичная информация триггеров регистра блока регистров мантисс.
Работа алгоритма управления арифметического вычислителя
Содержательная ГСА управления приведена на фиг.32а и фиг.32б и отражает работу блока управления операций с плавающей запятой (фиг.24).
Блок 83 алгоритма является начальным.
В блоке 84 алгоритма осуществляется подача сигнала сброса в нулевое состояние - СБРОС на входы всех элементов устройств.
В блоке 85 алгоритма управляющий сигнал разрешения работы блока, выполняющего операции с плавающей запятой, РРПЗ:=1 принимает единичное значение. Арифметический вычислитель выполняет операции в формате с плавающей запятой.
В блоке 86 алгоритма по команде ОРБПЗ:=0 - окончание работы блока с плавающей запятой принимает нулевое значение. Тем самым работа блока с плавающей точкой разрешена.
В блоке 87 по команде БОПЗ:=ВХД блок операций с плавающей запятой принимает входные значения чисел в формате с плавающей запятой.
В блоке 88 алгоритма по команде БРгПМН:=ВХЧМН блок регистр первой мантиссы принимает числовое значение первой мантиссы, по команде БРгВМН:=ВХЧМН блок регистр второй мантиссы принимает двоичный код второй мантиссы, по команде БФЗРМН:=КОПМН на вход блока формирования знакового разряда поступает код операции для выполнения операции вычислителя в формате с плавающей запятой (фиг.24).
В блоках 89-99 алгоритма происходят вычисление суммы мантисс, формирование знака результата мантиссы и запись полученного результата в регистр результата мантисс.
В блоке 89 алгоритма анализируется сигнал операции суммирования мантисс - СУММН. Если установлена операция суммирования - выход ДА, то осуществляется переход на блок 90 алгоритма, иначе - выход НЕТ на блок 100.
В блоке 90 алгоритма по команде СВМН:=0 устанавливается сигнал СВМН - суммирование-вычитание в нулевое значение, тем самым устанавливается режим работы блока по выполнению операции суммирования входных чисел в формате с плавающей запятой.
В блоке 91 алгоритма по командам БСВМН:=ПМН и БСВМН:=ВМН блок сумматора-вычитателя принимает значения первой и второй мантиссы для выполнения операции суммирования.
В блоке 92 алгоритма используя операцию сумму по модулю два знаковых разрядов первой и второй мантисс - ЗРПМН и ЗРВМН, происходят вычисление и анализ результата этой операции ЗРПМН ЗРВМН. Если результат этой операции равен нулю, то это означает, что необходимо выполнять операцию сложения, так как мантиссы имеют одинаковые знаковые разряды. В этом случае осуществляется переход на блок 97 алгоритма - выход нуль. Если результат в блоке 92 алгоритма равен единице, то это означает, что входные мантиссы имеют разные знаковые разряды и при этом необходимо выполнить операцию вычитания. По выходу - единица данного блока осуществляется переход на блок 93 алгоритма.
В блоке 93 алгоритма по команде РЕЗМН:=ПМН-ВМН вычисляется разность между первой ПМН и второй ВМН мантисс.
В блоке 94 алгоритма анализируется сигнал ЗАЕМ - результат вычитания первой и второй мантисс. Если ЗАЕМ равен нулю - выход нуль блока, то осуществляется переход на блок 98 алгоритма. В этом случае при выполнении операции вычитания первая мантисса оказалась больше второй, разность между числами получена положительная. Если сигнал ЗАЕМ равен единице - выход единица, осуществляется переход на блок 95 алгоритма, то это означает, что первая мантисса меньше второй, и для получения положительной разности необходимо поменять местами входные мантиссы на входы нейронов блока сумматора-вычитателя и от второй большей мантиссы вычесть первую меньшею.
В блоке 95 алгоритма по команде РЕЗМН:=ВМН-ПМН вычисляется разность между второй ВМН мантиссой и первой ПМН.
В блоке 96 алгоритма по команде ЗРРЗМ:=ЗРВМН знаковому разряду результата присваивается знаковый разряд второй большей по модулю мантиссы.
В блоке 97 алгоритма по команде РЕЗМН:=ПМН+ВМН вычисляется сумма первой ПМН и второй ВМН мантиссы.
В блоке 98 алгоритма по команде ЗРРЗМ:=ЗРПМН знаковому разряду результата присваивается знаковый разряд первой мантиссы ПМН.
В блоке 99 алгоритма по команде БРгРМН:=РЕЗМН в блок регистра результата мантиссы записывается результат: сумма - в случае равенства знаковых разрядов чисел и разность, если знаковые разряды мантисс различные.
В блоках 100-110 алгоритма происходят вычисление разности мантисс, формирование результата и его знакового разряда, а также запись полученного результата в регистр результата мантисс.
В блоке 100 алгоритма анализируется сигнал операции вычитания мантисс - ВЫЧМН. Если установлена операция вычитание - выход ДА, то осуществляется переход на блок 101 алгоритма, иначе - выход НЕТ на блок 115.
В блоке 101 алгоритма по команде СВМН:=1 устанавливается сигнал СВМН - суммирование-вычитание в единичное значение, это означает, что устанавливается режим работы сумматора-вычитателя по выполнению операции вычитания входных мантисс.
В блоке 102 алгоритма по командам: БСВМН:=ПМН и БСВМН:=ВМН блок сумматора-вычитателя принимает значения первой ПМН и второй ВМН мантисс для выполнения операции вычитания.
В блоке 103 алгоритма, с помощью операции суммы по модулю двух знаковых разрядов первой и второй мантисс - ЗРПМН и ЗРВМН, происходят вычисление и анализ результата этой операции ЗРПМН ЗРВМН. Если результат этой операции равен единице, то это означает, что необходимо выполнять операцию сложения, так как мантиссы имеют разные знаковые разряды и установлена операция в блоке 100 алгоритма - вычитание. В этом случае осуществляется переход на блок 108 алгоритма - выход единица. Если результат в блоке 103 алгоритма равен нулю, то это означает, что входные мантиссы имеют одинаковые знаковые разряды и при этом необходимо выполнить операцию вычитания. По выходу - нуль блока 103 алгоритма осуществляется переход на блок 104 алгоритма.
В блоке 104 алгоритма по команде РЕЗМН:=ПМН-ВМН вычисляется разность между первой ПМН мантиссой и второй ВМН.
В блоке 105 алгоритма анализируется сигнал ЗАЕМ - результат вычитания между первой и второй мантиссами. Если ЗАЕМ равен нулю - выход нуль блока, то осуществляется переход на блок 109 алгоритма. В этом случае при выполнении операции вычитания первая мантисса оказалось больше второй, разность между мантиссами получена положительная. Если сигнал ЗАЕМ равен единице - выход единица блока 106 алгоритма, то это означает, что первая мантисса меньше второй. В этом случае чтобы получить положительную разность необходимо поменять местами входные мантиссы и от второй большей мантиссы вычесть первую меньшую.
В блоке 106 алгоритма по команде РЕЗМН:=ВМН-ПМН вычисляется разность между второй ВМН мантиссой и первой ПМН.
В блоке 107 алгоритма по команде ЗРРЗМ:=ЗРВМН знаковому разряду результата присваивается знаковый разряд второй большей по модулю мантиссы.
В блоке 108 алгоритма по команде РЕЗМН:=ПМН+ВМН вычисляется сумма между первой ПМН и второй мантиссами ВМН.
В блоке 109 алгоритма по команде ЗРРЗМ:=ЗРПМН знаковому разряду результата присваивается знаковый разряд первой мантиссы ПМН.
В блоке 110 алгоритма по команде БРгРМН:=РЕЗМН в блок регистр результата мантиссы записывается результат: разность в случае равенства знаковых разрядов мантисс и сумма, если знаковые разряды операндов различные.
В блоке 111 алгоритма анализируется сигнал СНМН - признак нормализованной мантиссы, по определению первый значащий разряд после запятой должен быть равен единице. В таком виде мантисса будет считаться нормализованной. В обратном случае, если после запятой будут нули, то необходимо осуществлять сдвиг мантиссы влево до тех пор, пока не будет единица, при этом от порядка вычитается единица, количество которых равно количеству сдвигов влево мантиссы. По выходу единица блока 111 алгоритма осуществляется переход на блок 114 алгоритма. По выходу нуль блока 111 алгоритма осуществляется переход на блок 112 алгоритма.
Блоки 112, 113 алгоритма осуществляют нормализацию результата - мантиссы и порядка. В этих блоках происходит сдвиг мантиссы результата влево и от порядка вычитается единица. Эти операции выполняются до тех пор, пока не будет получен нормализованный вид результата.
В блоке 112 алгоритма по команде БРгРМН:=СГСМ происходит подача сигналов сдвига влево мантиссы результата до нормализованного вида из блока 147 управления операциями с плавающей запятой.
В блоке 113 алгоритма по команде БСВПР:=БСВПР-ЕДН осуществляется вычитание единицы из блока сумматора-вычитателя до нормализованного вида мантиссы результата.
В блоке 114 алгоритма по команде БРгРМН:=РЕЗМН в блок регистра результата мантиссы осуществляется запись полученного результата нормализованного вида. По команде БРгРПР:=РЕЗПР в блок результата порядка записывается окончательный порядок, полученный в результате нормализации результата.
В блоке 115 алгоритма анализируется сигнал операции деления мантисс - ДЕЛМН. Если установлена операция деление - выход ДА, то осуществляется переход на блок 116 алгоритма, иначе - выход НЕТ на блок 135.
В блоке 116 алгоритма по команде СВМН:=1 устанавливается сигнал СВМН - суммирование-вычитание в единичное значение, это означает, что определяется режим работы вычитателя для выполнения операции деления входных операндов.
В блоке 117 алгоритма по командам: БСВМН:=ПМН и БСВМН:=ВМН блок сумматора-вычитателя принимает значения первой ПМН и второй ВМН мантиссы для выполнения операции деления, где делимое - первая мантисса ПМН, делитель - вторая мантисса ВМН для получения первого остатка - ОСМН.
В блоке 118 алгоритма по команде ОСМН:=ПМН-ВМН определяется первый остаток между делимым ПМН и делителем ВМН. Блоки 119-131 алгоритма образуют цикл, в результате которого формируется целая часть частного. Блоки 122-132 вычисляют дробную часть частного до определенной точности - количество знаков после запятой, которая определяется количеством разрядов регистра блока регистра результата мантиссы.
В блоке 119 алгоритма анализируется сигнал ПДЧМ - признак дробной части частного. Если вычисляется целая часть частного, при этом признак ПДЧМ равен нулю - выход блока нуль, то осуществляется переход на блок 120 алгоритма. Если вычисляется дробная часть результата - выход единица, то осуществляется переход на блок 121 алгоритма.
В блоке 120 алгоритма по команде ЦДЧМ:=1 целая и дробная часть результата принимает значение единицы, это означает, что вычисляются двоичные разряды частного в дробной части.
В блоке 121 алгоритма по команде ЦДЧМ:=0 целая и дробная часть результата принимает значение нуля, это означает, что формируются двоичные разряды частного в целой части.
В блоках 122-130 алгоритма анализируется знаковый разряд остатка и при этом определяется двоичный разряд частного. Частное формируется поразрядно согласно алгоритму деления чисел без восстановления остатка.
В блоке 122 анализируется знаковый разряд остатка - ЗрОСМН. Если ЗрОСМН равен единице - выход единица блока, то это означает, что очередной двоичный разряд частного равен нулю и при этом осуществляется переход на блок 127 алгоритма. В случае знакового разряда ЗрОСМН, равного нулевому значению, разряд частного при этом будет равен единице. В результате этого осуществляется переход на блок 123 алгоритма.
В блоке 123 алгоритма по команде БРгРМН:=1 происходит загрузка единичного значения частного в регистр блока регистра результата мантиссы.
В блоке 124 алгоритма по команде БРгПМН:=ОСМН в регистр блока первой мантиссы записывается очередной остаток - ОСМН для формирования частного заданной точности.
В блоке 125 по команде БРгПМН:=СДВМН на вход регистра блока регистра первой мантиссы поступает управляющий сигнал сдвига СДВМН из блока управления операциями с плавающей запятой для выполнения операции сдвига информации влево на один разряд, находящейся в регистре блока.
В блоке 126 алгоритма по команде БРгРМН:=СГСМ на вход блока регистра результата мантиссы поступают управляющий сигнал СГСМ - сдвига информации влево на один разряд, тем самым формируются двоичные разряды частного. По команде ОСМН:=ПМН-ВМН вычисляется разность между предшествующим остатком и делителем, при этом вычисляется очередной остаток.
В блоке 127 алгоритма по команде БРгРМН:=0 происходит загрузка нулевого значения частного в регистр блока регистра результата мантиссы.
В блоке 128 алгоритма по команде БРгПМН:=ОСМН в регистр блока первой мантиссы записывается очередной остаток - ОСМН для формирование частного заданной точности.
В блоке 129 по команде БРгПМН:=СДВМН на вход регистра блока регистра первой мантиссы поступает управляющий сигнал сдвига - СДВМН из блока управления операциями с плавающей запятой для выполнения операции сдвига информации влево на один разряд.
В блоке 130 алгоритма по команде БРгРМН:=СГСМ на вход блока регистра результата мантиссы поступает управляющий сигнал СГСМ - сдвига информации влево на один разряд, тем самым формируются двоичные разряды частного. По команде ОСМН:=ПМН+ВМН происходит сложение с предшествующим остатком и делителем, тем самым вычисляется очередной остаток.
В блоке 131 алгоритма анализируется информационный сигнал ЦДЧМ - целая и дробная часть частного. Если этот сигнал равен нулевому значению - выход нуль блока, то осуществляется переход на блок 119 алгоритма. В этом случае вычисляются разряды целой части частного и после очередного полученного разряда целой части происходит проверка на признак дробной части. Этот цикл формирует целую часть частного до получения признака конца разрядов целой части делимого, скажем, до обнаружения кода запятой в двоичном числе делимого. Если этот признак ЦДЧМ равен единице - выход единица блока, то это означает, что целая часть частного получена и при этом необходимо формировать двоичные разряды дробной части результата. С выхода блока 131 по единице осуществляется переход на блок 132 алгоритма.
В блоке 132 алгоритма анализируется признак получения окончательного результата - РЕЗМН. Если не все двоичные разряды частного сформированы, то осуществляется переход на блок 122 алгоритма - выход блока НЕТ. В этом случае процесс получения разрядов частного продолжается в циклическом режиме до получения частного с заданной точностью в дробной части. По выходу - ДА этого блока осуществляется переход на блок 133 алгоритма.
В блоке 133 алгоритма по команде БРгРМН:=РЕЗМН окончательный результат - частное входных чисел записывается в регистр блока регистра результата мантиссы.
В блоке 134 алгоритма определяется знаковый разряд частного - ЗРРЗМ по операции суммы по модулю два знаковых разрядов первой мантиссы ПМН и второй мантиссы ВМН. Определение знака осуществляется по команде ЗРРЗМ:=ЗРПМН ЗРВМН.
В блоке 135 алгоритма по команде БСВМН:=УМНМН на вход блока сумматора-вычитателя поступает управляющий сигнал УМНМН для выполнения операции умножения между входными мантиссами. В представленном вычислителе произведение чисел первой мантиссы ПМН и второй мантиссы ВМН выполняется путем умножения с младших разрядов множителя со сдвигом множимого влево.
Блоки 136-140 алгоритма формируют цикл, в котором анализируется разряд множителя, начиная с младшего, затем происходит суммирование накапливаемой суммы частичных произведений со сдвинутым влево на один или несколько разрядов множимым.
В блоке 136 алгоритма анализируется управляющий сигнал признак произведения ППРМН, при котором окончательно будет сформировано произведение чисел. Если признак произведения ППРМН равен нулю - выход нуль блока, то это означает, что все двоичные значимые разряды множителя просмотрены в регистре блока регистра второй мантиссы и при этом осуществляется переход на блок 141 алгоритма, в котором формируется окончательный результат. Если признак произведения ППРМН равен единице - выход единица блока - это означает, что не все разряды множителя просмотрены, процесс вычисления произведения продолжается в циклическом режиме. При этом осуществляется переход на блок 137 алгоритма.
В блоке 137 алгоритма по команде БРгВМН:=ССДМ на вход регистра блока регистра второй мантиссы поступает сигнал сдвига вправо на один разряд для анализа очередного двоичного разряда множителя - РМНМ.
В блоке 138 алгоритма анализируется очередной разряд множителя - РМНМ. Если разряд множителя РМНМ равен нулевому значению - выход нуль блока, то осуществляется переход на блок 140 алгоритма. В этом случае не происходит суммирования частичных произведений со сдвинутым множимым. Если двоичный разряд множителя равен единице - выход единица блока, то осуществляется переход на блок 139 алгоритма.
В блоке 139 алгоритма по команде БСВМН:=ПМН+БСВМН происходит суммирование частичных произведений со сдвинутым влево множимым.
В блоке 140 алгоритма по команде БРгПМН:=СДВМН на вход регистра блока регистра первой мантиссы поступает из блока управления операциями с плавающей запятой сигнал сдвига влево на один разряд, в этом регистре хранится множимое.
В блоке 141 алгоритма по команде БРгРМН:=РЕЗМН произведение входных чисел записывается в регистр блока регистра результата мантиссы.
В блоке 142 алгоритма определяется знаковый разряд произведения - ЗРРЗМ по операции суммы по модулю два знаковых разрядов первой ПМН и второй ВМН мантисс числа. Определение знака осуществляется по команде ЗРРЗМ:=ЗРПМН ЗРВМН.
Блок 143 алгоритма является конечным.
Работа арифметического вычитателя заключается в следующем.
Внешние управляющие сигналы "РРПЗ" и "ОРБПЗ" поступают в блок 147 управления операциями с плавающей запятой.
Основные арифметические операции: суммирование, вычитание, умножение и деление в формате с плавающей запятой выполняются над мантиссами чисел аналогично операциям с фиксированной запятой над числами. Различие между форматами в вычислениях заключается в следующем: 1) в формате с плавающей запятой необходимо выполнять операции над порядками чисел, 2) мантисса результата должна быть представлена в нормализованном виде. После запятой, отделяющей знаковый разряд от самого числа, в прямом коде в мантиссе должна быть единица, 3) для нормализации мантиссы необходимо проводить операции сдвига влево мантиссы числа и вычитать из порядка единицу до тех пор, пока не будет получен нормализованный вид результата.
На фиг. 23 представлена структурная схема блока операций с плавающей запятой. Этот блок состоит из двух блоков: 1) блока определения операций порядков с плавающей запятой - БОПРПЗ, 2) блока определения операций мантисс с плавающей запятой - БОМПЗ.
На фиг. 24 предложена структурная схема блока определения операций мантисс с плавающей запятой. В состав структурной схемы входят: блок 142 формирования знакового разряда результата мантиссы - БФЗРМН; блок 143 регистра первой мантиссы - БРгПМН; блок 144 сумматора-вычитателя мантисс - БСВМН; блок 145 регистра второй мантиссы - БРгВМН; блок 146 регистра результата мантиссы - БРгРМН; блок 147 управления операциями с плавающей запятой - БУОПЗ. На фиг. 24 указаны связи между блоками в виде управляющих и информационных сигналов.
Основная функция этого блока заключается в вычислении результата и формировании знакового разряда результата при выполнении операций умножения и деления, а также определения типа операций: сложение или вычитание в формате с плавающей запятой. На информационные входы блоков 143 и 145 регистров первой и второй мантиссы чисел поступают входные операнды - ВХЧМН из блока 2 ввода чисел (фиг.24). В случае выполнения операций умножения или деления этот блок по операции суммы по модулю два определяет знаковый разряд результата - ЗРРЗМ, поступающий на вход блока 146 регистра результата мантиссы ЗРРЗМ=ЗРПМН ЗРВМН, где ЗРПМН - знаковый разряд первой мантиссы, ЗРВМН - знаковый разряд второй мантиссы. Если вычислитель выполнял операции сложения или вычитания, то знаковый разряд результата ЗЗРМ формируется в блоке 144 сумматора-вычитателя мантисс и поступает на вход блока 142 формирования знакового разряда мантиссы. На управляющие входы блоков 143, 145, 146 регистра первой и второй мантиссы числа, а также результата мантиссы из блока 147 управления операциями с плавающей запятой поступают соответственно информационные сигналы: УПМН на блок 143 регистра первой мантиссы, СУПМН на блок 145 регистра второй мантиссы, УПРМ на блок 146 регистра результата мантиссы. По приходу сигналов осуществляются обнуление регистров этих блоков, синхронизация по записи информации, а также сигналы сдвига в блоки: регистров первой и второй мантиссы числа, результата мантиссы. На входы блока сумматора-вычитателя мантисс поступают двоичные коды чисел ПМН - первая мантисса и ВМН - вторая мантисса для выполнения операций сложения, вычитания, умножения и деления. На вход блока 144 сумматора-вычитателя мантисс из блока 142 формирования знакового разряда мантисс поступают управляющие сигналы: СВМН - суммирование-вычитание мантисс для управления операций суммирования или вычитания и УМНМН - умножение для выполнения операции произведения чисел. Из блока 144 сумматора-вычитателя мантисс выходной управляющий сигнал ЗрОСМН - знаковый разряд остатка поступает на вход блока 142 формирования знакового разряда мантисс и на вход блока 146 регистра результата мантиссы для определения признака операции - сигнала СВМН и очередной цифры частного при выполнении операции деления. Выходным управляющим сигналом блока 144 сумматора-вычитателя мантисс является сигнал ЗЗРМ - знаковый разряд мантиссы, который поступает на вход блока 142 для формирования окончательного знака результата мантиссы. Выходной сигнал блока 144 сумматора-вычитателя мантисс ОСМН - остаток, поступает на вход блока 143 регистра первой мантиссы, формирование этого сигнала необходимо при выполнении операции деления. Выходной информационный сигнал РЕЗМН является результатом операций, который поступает на вход блока 146 регистра результата мантиссы. Выходным информационным сигналом блока 146 регистра результата мантиссы является сигнал РПЗМН - результат с плавающей запятой. С входа блока 143 регистра первой мантиссы на вход блока 147 управления операциями с плавающей запятой поступает управляющий сигнал ПДЧМ - признак дробной части при делении, который является признаком конца целой части двоичного первой мантиссы. При поступлении этого сигнала на блок управления необходимо установить знак, отделяющий целую часть числа от дробной в блоке 146 регистра результата мантиссы. На вход блока 146 регистра результата мантиссы поступает с выхода блока 147 управления операциями с плавающей запятой признак целой и дробной части результата при делении - ЦДЧМ, который формирует позицию, отделяющую целую часть от дробной (точку или запятую). На вход блока 142 формирования знакового разряда мантиссы поступает информационный сигнал КОПМН - код операции сложения, вычитания, умножения и деления, этот сигнал поступает на вход блока 147 управления операциями с плавающей запятой для анализа и генерации соответствующих управляющих сигналов, поступающих на входы блоков. С выхода блока 145 регистра второй мантиссы выходит управляющий сигнал РМНМ - соответствующий значению двоичного разряда второй мантиссы при выполнении операции умножения вычислителем, который поступает на вход блока 143 регистра первой мантиссы. При РМНМ, равным нулю, происходит сдвиг двоичного числа блока 143 регистра первой мантиссы на один разряд влево, если сигнал РМНМ равен единице, то блок 144 суммирования-вычитания мантисс принимает значение из блока 143 регистра первой мантиссы. Выходной управляющий сигнал ППРМН - признак пустого регистра поступает на вход блока 147 управления операциями с плавающей запятой. Этот сигнал принимает значение единица, если в регистре второй мантиссы имеется хотя бы один двоичный разряд, равный единице. Внешними входными сигналами блока 147 управления операциями с плавающей запятой являются управляющие сигналы: РРПЗ - разрешения работы блока операций с плавающей запятой и ОРБПЗ - конец работы блока операций с плавающей запятой.
Блок 142 формирования знакового разряда результата мантиссы БФЗРМН (фиг.25) построен на пороговых элементах и нейронах, содержит элемент ИЛИ DD148, элементы И DD149, DD150, сумматор по модулю два DD151, элемент И DD152, элемент И с инверсным входом DD153, элемент ИЛИ DD154, элемент И с инверсным входом DD155, элемент ИЛИ DD156, элементы И DD157 и DD158, сумматор по модулю два DD159, логический элемент ИЛИ DD160. Входной информационный сигнал КОПМН - код операций мантисс поступает с выхода блока 1 ввода чисел и кода операций, представляет собой совокупность четырех управляющих сигналов, которые соответствуют основным арифметическим операциям: СУММН - суммирование, ВЫЧМН - вычитание, ДЕЛМН - деление, УМНМН - умножение (фиг.25). На вход блока поступают управляющие сигналы: ЗРПМН - знаковый разряд первой мантиссы и ЗРВМН - знаковый разряд второй мантиссы. Входной управляющий сигнал ЗЗРМ - знаковый разряд поступает на вход логического элемента ИЛИ DD160, этот сигнал поступает с выхода блока 144 сумматора-вычитателя мантисс. Этот сигнал определяет знак результата при операциях сложения и вычитания. Выходным управляющим сигналом СВМН - суммирование-вычитание мантисс является признаком выполнения операций - суммирование или вычитание блоком 144 сумматора-вычитателя мантисс. Этот сигнал поступает с выхода логического элемента ИЛИ DD154. Если сигнал СВМН равен нулю, то необходимо выполнить операцию суммирования, в противоположном случае, когда СВМН равен единице, выполняется операция вычитания. Управляющий сигнал УМНМН - умножение является выходным сигналом блока, поступающим на вход блока 144 сумматора-вычитателя мантисс. Выходной знаковый разряд результата ЗРРЗМ формируется с выхода логического элемента ИЛИ DD160 и поступает на вход блока 146 регистра результата мантиссы. Логические элементы: ИЛИ DD148, И DD149, DD150 сумматор по модулю два DD151, И DD152, И с инверсным входом DD153, ИЛИ DD154, И с инверсным входом DD155 определяют признак выполнения операции суммирования или вычитания блока 144. Если сигнал СВМН равен нулю, то блок 144 выполняет суммирование мантисс, если СВМН равен единице, то выполняется операция вычитания мантисс. Операция суммирования по модулю чисел СУММН=1 выполняется тогда и только тогда, когда числа имеют одинаковые знаковые разряды, то есть ЗРПМН=0 и ЗРВМН=0 - оба числа положительные или ЗРПМН=1 и ЗРВМН=1 - оба числа отрицательные, и установлена пользователем операция СУММН=1 - суммирование в блоке 1 ввода чисел и кода операций, при этом сигнал СВМН=0, если же одно из чисел будет отрицательным ЗРПМН=0, а ЗРВМН=1 или ЗРПМН=1, а ЗРВМН=0, то выполняется операция вычитания при этом выходной сигнал СВМН=1. Определение сигнала СВМН - суммирование-вычитание мантисс можно представить в таблице 3.
Операция вычитания ВЫЧМН=1 чисел выполняется тогда и только тогда, когда числа имеют одинаковые знаковые разряды, то есть ЗРПМН=0 и ЗРВМН=0 - оба числа положительные или ЗРПМН=1 и ЗРВМН=1 - оба числа отрицательные и установлена пользователем операция ВЫЧМН=1 - вычитание в блоке 1 ввода чисел и кода операций, при этом сигнал СВМН==1, если же одно из чисел будет отрицательным ЗРПМН=0, а ЗРВМН=1 или ЗРПМН=1, а ЗРВМН=0, то выполняется операция суммирования, при этом сигнал СВМНМ=0. Определение сигнала СВМН - суммирование-вычитание мантисс можно представить в таблице 4. Логический элемент ИЛИ DD148 выполняет собирательную функцию двух команд СУММН - суммирование и ВЫЧМН - вычитание, поступающих на входы элемента. Если установлена одна из перечисленных функций, то на выходе элемента DD148 всегда будет единица.
Элементы И DD149 и DD150 выполняют функцию электронных ключей, на управляющий вход которого поступает выход логического элемента ИЛИ DD148. Электронные ключи будут открыты в случае выбора пользователем операций суммирования или вычитания. На вход сумматора по модулю два DD151 поступают знаковые разряды двоичных чисел ЗРПМН и ЗРВМН. Если они одинаковые, то на выходе будет низкий уровень - нулевое состояние, если знаковые разряды разные, то на выходе сумматора по модулю два будет высокий уровень - единица. Логический элемент И DD152 и элемент И с инверсным входом DD153 работают как электронные ключи, управляющим сигналом к которым является выходной сигнал сумматора по модулю два DD151. Если управляющий вход элементов DD152 и DD153 равен нулю, то на выходе электронного ключа DD152 будет нулевое состояние, а на выходе ключа DD153 будет сигнал ВЫЧМН - вычитание. Если знаковые разряды разные, то управляющий сигнал электронных ключей DD152 и DD153 равен единице, в этом случае на выходе логического элемента И DD153 будет нуль, а на выходе элемента И DD152 будет сигнал СУММН - суммирование. Если пользователем выбрана операция деления чисел - команда ДЕЛМН, то единичное значение этой команды поступит на вход логического элемента ИЛИ DD154. На выходе будет также единичное значение СВМН=1, при этом будет выполнена первая операция вычитания, в дальнейшем код операции при делении будет зависеть от знакового разряда остатка. При умножении чисел всегда выполняется операция суммирования, то есть выходной сигнал СВМН=0. Такое состояние при умножении формирует логический элемент И DD155 с инверсным входом. Команда УМНМН поступает одновременно как на прямой вход элемента И DD155, так и на инверсный вход. На выходе логического элемента И DD155 всегда будет нуль, что определяет операцию суммирования (фиг.25). Элементы ИЛИ DD156, И DD157, DD158, сумматор по модулю два DD159, элемент ИЛИ DD160 образуют систему логических элементов, которые формируют знаковый разряд результата мантиссы, в случае выбора пользователем операций деления или умножения. Управляющие сигналы ДЕЛМН - деление и УМНМН - умножение поступают на вход логического элемента ИЛИ DD156. Один из сигналов высокого уровня ДЕЛМН или УМНМН формирует выходной сигнал высокого уровня на выходе схемы ИЛИ DD156. Логические элементы И DD157 и DD158 выполняют функцию электронных ключей. На первые входы элементов И DD157 и DD158 поступают знаковые разряды первой и второй мантиссы ЗРПМН и ЗРВМН. Единичный сигнал с выхода элемента ИЛИ DD156 открывает элементы И DD157 и DD158, который поступает параллельно на вторые входы этих элементов и является управляющим сигналом (фиг.25). На сумматоре по модулю два DD159 формируется знаковый разряд в случае выполнения арифметическим вычислителем операций деления или умножения ЗРРЗМ=ЗРПМН ЗРВМН. На выходе логического элемента ИЛИ DD160 окончательно формируется знаковый разряд результата - ЗРРЗМ (фиг.25).
Блок 143 регистра первой мантиссы (БРгПМН) (фиг.26) содержит х-триггеров Трх, где х - количество разрядов входного числа, выполненных на элементах DD161, DD162, DD163, DD164, двухвходовый пороговый элемент ИЛИ DD165, систему четырехвходовых элементов ИЛИ, выполненных на пороговых элементах DD166, DD167, DD168, DD169. (фиг.26). Блок 143 регистра первой мантиссы предназначен для хранения двоичного кода первой мантиссы. Перед началом работы вычислителя по приходу из блока 143 управления операциями с плавающей запятой информационного сигнала УПМН происходит обнуление всех триггеров блока управляющим сигналом ОБЛМН, поступающего параллельно на все входы триггеров блока. По приходу из блока 1 ввода чисел и кода операций информационного сигнала ВХЧМН - данные первой мантиссы осуществляется загрузка двоичного кода в регистр блока 143 БРгПМН (фиг.26). Информационный сигнал ВХЧМН состоит из сигналов ДрМН1, ДрМН2, ДрМН3, ..., ДрМНх, поступающих на входы системы четырехвходовых пороговых элементов ИЛИ (фиг.26). При поступлении управляющего сигнала РЗАМН - на входы триггеров Тр1, Тр2, Тр3, ..., Трх из блока 147 управления операциями с плавающей запятой, разрешающего записать информацию, происходит загрузка поступившего двоичного кода числа в триггеры блока. Управляющий сигнал СДВМН - сдвига генерируется блоком 147 управления в случае выполнения операции деления арифметическим вычислителем. Информационный сигнал ОСМН - остаток при делении поступает с выхода блока 144 сумматора-вычитателя мантисс БСВМН (фиг.24, 26) на входы системы пороговых элементов ИЛИ. Выходной информационный сигнал ПДЧМ - признак дробной части определяет установленный код, отделяющий целую часть от дробной при выполнении операции деление. Этот сигнал поступает на вход блока 147 управления операциями с плавающей запятой, где происходит дешифрация сигнала и установка в частном признака (кода запятой), отделяющего целую часть от дробной (фиг.24, 26). Информационный сигнал ОСМН состоит из сигналов ЗрМН1, ЗрМН2, ЗрМН3, ..., ЗрМНх - двоичных разрядов остатка (фиг.26). Управляющий сигнал РМНМ, поступающий на вход двухвходового порогового элемента ИЛИ DD165, генерируется блоком регистра второй мантиссы в случае выполнения операции умножения арифметическим вычислителем. Выход каждого х-триггера регистра поступает на вход предыдущего х-1 и х+1 элемента системы четырехвходовых пороговых ИЛИ. Эта операция осуществляется при поступлении сигналов сдвига СДВМН или РМНМ соответственно при выполнении операций деления и умножения. При этом выполняется операция сдвига на один разряд влево или вправо (фиг.26). Выходной информацией блока 143 регистра первой мантиссы является информационный сигнал ПМН - первая мантисса, поступающий на вход блока 144 сумматора-вычитателя мантисс (фиг.24, 26). Информационный сигнал ПМН состоит из двоичных разрядов ЗрПМН1, ЗрПМН2, ЗрПМН3, ..., ЗрПМНх, поступающих с выходов триггеров Тр1, Тр2, Тр3, ..., Трх (фиг.26).
Блок 144 сумматор-вычитатель мантисс состоит из двух частей - коммутатора (переключателя) и сумматора-вычитателя (фиг.27). Коммутатор состоит из элементов И-ИЛИ, построенных на микросхемах: DD170, DD171, DD172, DD173, DD174, DD175, DD176, DD177, сумматор-вычитатель построен на комбинационных схемах СУМ-ВЫЧi, выполненных на элементах DD178, DD179, DD180, DD181, а также элемента с инверсным управляющим входом И, выполненного на микросхеме DD182, работающего в режиме вентиля. Входными величинами в блок 144 сумматор-вычитатель мантисс являются двоичные разряды чисел - ПМН - первая мантисса и ВМН - вторая мантисса и знаковые разряды операндов: ЗРПМН - знаковый разряд первой мантиссы, ЗРВМН - знаковый разряд второй мантиссы. Двоичные разряды ЗрПМНi, ЗрВМНi поступают поразрядно на входы коммутатора. Элементы DD170, DD171, DD178 выполняют сложение или вычитание знаковых разрядов ЗРПМН и ЗРВМН мантисс двоичных чисел (фиг.27). Управляющим входом для комбинационных схем СУМ-ВЫЧi является сигнал СВМН - суммирование-вычитание мантисс, поступающий из блока 142 формирования знакового разряда результата мантисс (фиг.24). Управляющий сигнал СВМН поступает параллельно на входы всех комбинационных схем СУМ-ВЫЧi. Если сигнал СВМН равен нулю, то комбинационные схемы выполняют операцию суммирования, в случае равенства сигнала СВМН единице, выполняется операция вычитания. При выполнении операции умножения управляющий сигнал УМНМН, равный единице, блокирует операцию сложения знаковых разрядов чисел, а также перенос из СУМ-ВЫЧ2 в СУМ-ВЫЧ1. В случае выполнения операции умножения знаковые разряды чисел не задействованы в формировании результата. При этом работают операции - суммирование, сдвиг множимого на один разряд влево и сдвиг множителя вправо на один разряд. Если вычитатель выполняет операции суммирования, вычитания или деления, то знаковые разряды в формировании результата участвуют. Управляющий сигнал УМНМН - умножение при этом равен нулевому значению, который поступает на инверсные управляющие входы элементов И-ИЛИ DD170, DD171, элемента И DD182, тем самым разрешает работу указанных схем. При выполнении операции вычитания необходимо от первой мантиссы числа ПМН вычесть вторую мантиссу числа ВМН, если ЗАЕМ, выходной сигнал комбинационной схемы СУМ-ВЫЧ1 DD178 равен единице, то это означает, что первая мантисса ПМН по модулю меньше второй ВМН. В этом случае необходимо поменять местами входные числа. Управляющий сигнал ЗАЕМ, поступающий параллельно на входы элементов И-ИЛИ, коммутирует входы ЗрПМН и ЗрВМН, таким образом, что теперь происходит вычитание от второй мантиссы ЗрВМН первой мантиссы ЗрПМН, меняя тем самым местами числа. В этом случае происходит вычитание от большего по модулю числа меньшего. Заема из старшего разряда при этом не будет. Выходными сигналами блока являются сигналы: ЗЗРМ - знаковый разряд при выполнении суммы или разности и ЗрОСМН - знаковый разряд остатка при делении. Знаковый разряд ЗЗРМ является выходом элемента И-ИЛИ DD170 - самого правого знакового разряда мантиссы. Знаковый разряд остатка ЗрОСМН - является выходом элемента СУМ-ВЫЧ1, т.е. суммой или разностью поступающих на вход элемента величин. Выходным информационным сигналом блока являются двоичные разряды результата РЕЗМНi (фиг.27).
Одноразрядный сумматор-вычитатель СУМ-ВЫЧ1 (фиг.28) содержит сумматор по модулю два, выполненный на формальном нейроне - элемент DD183, пороговые элементы DD184, DD185, DD186, инвертор DD187, логические схемы И DD188, DD189, логическую схему ИЛИ DD190. Сумматор-вычитатель мантисс вычисляет знаковый разряд при выполнении операции вычитания и знаковый разряд остатка ЗрОСМН при делении, затем формируется разряд частного. На пороговом элементе (ПЭ) DD185 формируется перенос при сложении и заем при вычитании. Пороговые элементы DD186 и DD185 составляют сумматор [1, 2]. На входы этих пороговых элементов поступают двоичные знаковые разряды первой и второй мантиссы: ЗРПМН и ЗРВМН, а также перенос Р2 из младшего разряда в старший (фиг.28). Двоичные разряды поступают поразрядно: ЗРПМН - знаковый разряд первой мантиссы, ЗРВМН - знаковый разряд второй мантиссы, Р2 - перенос, Z1 - заем, а также признак суммирования-вычитания сигнал СВМН (фиг.28). Пороговые элементы DD184 и DD185 образуют схему вычитателя знаковых разрядов. Логические элементы DD188 и DD189 выполняют роль электронных ключей. Управляющим сигналом для них является признак суммирования-вычитания мантисс СВМН. На пороговый элемент DD188 этот сигнал поступает на прямой вход. На пороговый элемент DD189 этот сигнал поступит через инвертор DD187. Если признак операции СВМН суммирования-вычитания мантисс будет равен нулю - выполнение операции суммирования, то электронный ключ DD189 будет открыт, а ПЭ DD188 будет заперт, т.к. управляющий сигнал СВМН поступает через инвертор DD187 на вход логического элемента И DD189. На выходе порогового элемента DD185 сформируется перенос из старшего разряда в знаковый разряд, если на входе порогового элемента DD183 будет не менее двух единиц. Пороговый элемент DD186 вычисляет сумму одноразрядных двоичных чисел - ЗРПМН и ЗРВМН, а также перенос Р2 из старшего разряда в знаковый. При суммировании через открытый элемент DD189 и схему ИЛИ DD190 разряд суммы S1 поступит на вход блока 146 регистра результата мантиссы. Если сигнал СВМН равен единице, то это означает выполнение операции вычитания. Пороговые элементы DD184 и DD185 образуют схему вычитателя. С выхода элемента DD185 формируется ЗАЕМ из старших разрядов в младшие. С выхода элемента DD184 вычисляется разность поступивших на вход одноразрядного сумматора-вычитателя двоичных чисел - ЗРПМН и ЗРВМН, а также заема Z1 из старших разрядов в младшие (фиг.28). Через открытый электронный ключ DD188 и пороговый элемент DD190 (схема ИЛИ) разряды разности R1 будут поступать на вход блока 147 регистра результата мантиссы. При выполнении операций суммирования и вычитания схема СУМ-ВЫЧ1 в вычислении окончательного результата РЕЗМН функционирует. Если установлена операция умножения, то управляющим сигналом УМНМН, поступающего из блока 142 формирования знакового разряда результата мантиссы, схема СУМ-ВЫЧ1 блокируется и не формирует произведения. В случае выполнения операции деления схема СУМ-ВЫЧ1 вычисляет знаковый разряд остатка - ЗрОСМН, который является выходом схемы. Значение сигнала ЗрОСМН формирует двоичные разряды частного. Если знаковый разряд ЗрОСМН равен единичному значению, т.е. получен отрицательный остаток при вычитании предыдущего остатка и сдвинутого делителя, то разряд частного равен нулю. В случае сигнала ЗрОСМН, равного нулевому значению, т.е. получен положительный остаток, двоичный разряд частного равен единице. Вычисление разрядов частного продолжается до тех пор, пока не будут получены все разряды частного как целой части, так и дробной с заданной точностью. Разряды частного через инвертор DD218 формируются в блоке 146 регистра результата мантиссы (фиг.31). Выходной сигнал ЗАЕМ, являющийся выходом с элемента DD185, поступает на прямые входы коммутатора (фиг.27). При выполнении операции вычитания сигнал ЗАЕМ формирует вычитание от большего числа по модулю меньшего. Если сигнал ЗАЕМ равен единичному значению, то необходимо поменять местами входные числа, в этом случае от меньшего числа по модулю вычитается большее. В случае равенства этого сигнала нулевому значению менять местами входные числа не надо, при этом от большего числа вычитается меньшее (фиг.27, 28). В этом случае вычисляется окончательный правильный результат.
Одноразрядный сумматор-вычитатель СУМ-ВЫЧi (фиг.29) суммирования-вычитания содержит логическую схему И DD191, логический элемент ИЛИ DD192, сумматор по модулю два, выполненный на формальном нейроне - элемент DD193, пороговые элементы DD194, DD195, DD196, инвертор DD197, логические схемы И DD198, DD199, логическую схему ИЛИ DD200. На пороговом элементе (ПЭ) DD195 формируется перенос при сложении или заем при вычитании. Пороговые элементы DD196 и DD195 составляют сумматор [1, 2]. На входы этих пороговых элементов поступают двоичные разряды чисел ЗрПМНi и ЗрВМНi, а также перенос Pi+1 из младших разрядов в старшие (фиг.27, 29). Двоичные разряды мантисс поступают поразрядно: ЗрПМН1 - разряд первой мантиссы, ЗрBMH1 - разряд второй мантиссы, Pi+1 - перенос, Zi-1 - заем, а также признак суммирования-вычитания мантисс СВМН (фиг.27, 29). Пороговые элементы DD194 и DD195 образуют схему вычитателя чисел от большего меньшего. Логические элементы DD198 и DD199 выполняют роль электронных ключей. Управляющим сигналом для них является признак операции суммирования-вычитания мантисс СВМН. На пороговый элемент DD199 этот сигнал поступает через инверторы DD197. Если сигнал - СВМН суммирования-вычитания мантисс будет равен нулю - выполнение операции суммирования, то электронный ключ DD199 будет открыт, а ПЭ DD198 будет заперт, т.к. управляющий сигнал СВМН поступает через инверторы DD197. На выходе порогового элемента DD195 сформируется перенос из старших разрядов в следующий больший по весу разряд, если на входе порогового элемента DD195 будет не менее двух единиц. Пороговый элемент DD196 вычисляет сумму одноразрядных двоичных чисел - ЗрПМНi и ЗрВМНi, а также перенос Pi+1 из младших разрядов в старшие. При суммировании через открытый элемент DD199 и схему ИЛИ DD200 разряд суммы Si поступит на вход блока 146 регистра результата мантиссы. Если сигнал СВМН равен единице, то это означает выполнение операции вычитания. Пороговые элементы DD194 и DD195 образуют схему вычитателя. С выхода элемента DD195 формируется заем из старших разрядов в младшие. С выхода элемента DD194 вычисляется разность поступивших на вход одноразрядного сумматора-вычитателя двоичных чисел - ЗрПМНi и ЗрВМНi, а также заема Zi-1 из старших разрядов. Через открытый электронный ключ DD198 и пороговый элемент DD200 (схема ИЛИ) разряды разности Ri будут поступать на вход блока 146 регистра результата мантиссы. Если выполняется операция умножение, при этом входной управляющий сигнал УМНМН равен единичному значению, то логический элемент И DD191 будет открыт, через него результат от предыдущей операции сложения - РЕЗМНi поступит на вход сумматора элементов DD195, DD196, тем самым будет сформирован цикл, при котором будет происходит накопление суммы частичных произведений. В случае сигнала УМНМН, равным нулевому значению, логический элемент И DD191 будет закрыт. При выполнении операций суммирования, вычитания или деления на вход сумматора будет поступать двоичный разряд 3pBMHi через логическую схему ИЛИ DD192 (фиг.29).
Блок 145 регистра второй мантиссы БРгВМН представляет собой систему логических элементов И, выполненных на пороговых элементах DD202, DD203, DD204, набор D-триггеров DD205, DD206, DD207, DD208, систему логических элементов ИЛИ, выполненных на пороговых элементах DD209, DD210, DD211, логический элемент ИЛИ DD201 (фиг.30). Блок 145 регистра второй мантиссы БРгВМН предназначен для хранения двоичных разрядов второй мантиссы. Входными информационными сигналами блока являются - СУПМН информационный сигнал управления, поступающий с выхода блока 147 управления операциями с плавающей запятой, и двоичный код второй мантиссы - информационный сигнал ВХЧМН, поступающий с выхода блока 1 ввода чисел и кода операций. Входным управляющим сигналом блока является сигнал УМНМН - умножение, поступающий из блока 142 формирования знакового разряда результата мантиссы. Этот сигнал поступает на инверсный вход каждого двухвходового логического элемента И системы пороговых элементов DD202, DD203, DD204. Выходным управляющим сигналом является сигнал ППРМН - признак пустого регистра, поступающий на вход блока 147 управления операциями с плавающей запятой. Выходным информационным сигналом блока является информационный сигнал ВМН - двоичные разряды второй мантиссы (фиг.30). В блоке организован сдвиг двоичных разрядов числа на один разряд в сторону младшей части (вправо) с целью получения и анализа текущего младшего разряда второй мантиссы при выполнении операции умножения и денормализации мантиссы при суммировании и вычитании чисел. Запись информации осуществляется следующим образом: младшие разряды второй мантиссы записываются в регистр в левую часть. Старший разряд заносится в Тр1, младший в Tpi в зависимости от длины двоичного слова (фиг.30). При каждом сдвиге вправо на один разряд происходит анализ регистра второй мантиссы на наличие в нем значимых разрядов. Если есть хотя бы один разряд, равный единице, сигнал ППРМН - признак пустого регистра равен единице, иначе сигнал ППРМН - принимает значение, равное нулю. Сигнал ППРМН поступает на вход блока 147 управления операциями с плавающей запятой. На вход блока 145 регистра второй мантиссы поступают ВХЧМН двоичные разряды второй мантиссы из блока 1 ввода чисел и кода операций. Блок 145 регистра второй мантиссы управляется из блока 147 управления операциями с плавающей запятой посредством управляющих сигналов. По сигналу ССБМ сигнал сброса блока 145 регистра второй мантиссы происходит сброс D-триггеров в нулевое состояние. По сигналу СЗМ - сигнал записи двоичных чисел, происходит запись разрядов в регистр второй мантиссы. По сигналу ССДМ - сигнал сдвига происходит сдвиг разрядов второй мантиссы на один разряд в сторону младшей части (вправо). На выходе самого правого триггера DD208 блока регистра второй мантиссы формируется сигнал РМНМ - текущий младший разряд второй мантиссы, поступающий на вход блока 143 блока регистра первой мантиссы (фиг.24). Набор элементов ИЛИ, выполненных на микросхемах DD209, DD210, DD211, выполняют собирательную функцию двоичного разряда входного числа ВХЧМН и при осуществлении операции сдвига вправо на один разряд двоичного разряда, записанного в i-1 триггере. Выход i-триггера поступает на вход i+1 элемента ИЛИ. Система логических элементов И DD202, DD203, DD204 выполняет функцию вентиля, управляющим сигналом которого является управляющий сигнал УМНМН - умножение. Если сигнал УМНМН равен нулевому значению, то система элементов И открыта, на прямые входы элементов поступают двоичные разряды второго числа, при этом выполняются операции: суммирование, вычитание или деление. Если сигнал УМНМН равен единичному значению, это означает, что выполняется операция умножение, в этом случае элементы И будут заперты. При этой операции анализируется поразрядно самый младший двоичный разряд второй мантиссы, поступивший с выхода предыдущего триггера, который хранит двоичный разряд с наибольшим весом (фиг.30).
Блок 146 регистра результата мантиссы содержит систему v - двухвходовых электронных ключей с инверсным входом - схем И - DD212, DD213, DD214, v - схем ИЛИ, выполненных на элементах DD215, DD216, DD217, логической схемы И с инверсным входом DD218, r-триггеров Tpr, где r - количество разрядов, необходимое для получения результата заданной точности: DD220, DD221, DD222 для хранения двоичных разрядов результата мантиссы. А также в состав блока входит триггер Тр1 DD219, предназначенный для хранения знакового разряда результата мантиссы (фиг.31). В блоке 146 регистра результата мантиссы записывается результат в параллельном режиме при выполнении операций: суммирование, вычитание и умножение. Результат при делении - частное записывается последовательно, поразрядно. Входным управляющим сигналом блока 146 регистра результата мантиссы является сигнал ДЕЛМН, который поступает на инверсные входы логических схем И. Если этот сигнал равен нулевому значению, в этом случае выполняются операции: суммирование, вычитание или умножение, то электронные ключи - схемы И DD212, DD213, DD214 - будут открыты, т.к. этот сигнал поступает на инверсные входы. Информационный сигнал РЕЗМН через открытые электронные ключи и схемы ИЛИ запишется в триггеры блока. Логический элемент DD218 в этом случае будет закрыт. Сигнал ДЕЛМН поступает на прямой вход элемента DD218. В случае управляющего сигнала ДЕЛМН, равному единичному значению, т.е. выполняется операция деления, электронные ключи DD212, DD213, DD214 будут заперты, логический элемент И DD218 будет открыт. На вход этого элемента поступает управляющий сигнал ЗрОСМН - знаковый разряд остатка при выполнении операции деления, который будет формировать разряды частного. При записи частного в триггеры DD220, DD216, DD217 из блока 147 управления будет генерироваться сигнал СГСМ - сдвига информации влево на один разряд. Первый разряд частного запишется в самый крайний, т.е. правый, триггер - Tpr. При поступлении сигнала сдвига СГСМ разряды частного будут последовательно перемещаться влево до получения частного заданной точности. Если сигнал ЗрОСМН, знаковый разряд, равен нулевому значению, то разряд частного равен единице, в случае равенства знакового разряда единице, разряд частного равен нулю. Перед началом работы сумматора-вычитателя мантисс по приходу из блока 147 управления операциями с плавающей запятой информационного сигнала УПРМ происходит обнуление всех триггеров блока сигналом УС0М. На входы триггеров, в которых хранится результат DD220, DD221, DD22, параллельно поступает сигнал сдвига информации влево на один разряд - СГСМ. Информационный сигнал результата РЕЗМН, поступающий из блока 144 сумматора-вычитателя мантисс, поступает на первые входы схем ИЛИ, затем на входы триггеров Tr DD220, DD221, DD222 блока 146 регистра результата мантисс. Полученный результат будет храниться в триггерах, составляющих регистр блока для хранения результата. На вторые входы схем ИЛИ поступает информационный сигнал ЦДЧМ - признак, который отделяет целую часть от дробной. Этот сигнал генерируется в блоке 147 управления операциями с плавающей запятой. В блок 147 регистра результата мантисс в начале записывается целая часть результата, затем признак целой части - двоичный код, например код запятой, в конце записывается дробная часть с учетом коэффициента точности - количества разрядов после запятой. На третьи входы схем ИЛИ поступает выходной сигнал с предыдущего триггера. Эта связь необходима для выполнения операции сдвига влево при последовательной записи двоичных разрядов частного при делении. На вход триггера Tp1 DD219 из блока 142 формирования знакового разряда мантиссы поступит управляющий сигнал ЗРРЗМ - знаковый разряд мантиссы. После этого в триггер Tp1 DD219 запишется знаковый разряд результата - ЗРРЗМ (фиг.31).
Логические условия: | |
X18: "СБРОС" | Х24: "ДЕЛМН" |
Х19: "СУММН" | Х25: "ПДЧМ" |
Х20: "ВЫЧМН" | Х26:"ЗрОСМН" |
Х21: "ЗРПМН ЗРВМН" | Х27: "ЦДЧМ" |
Х22: "ЗАЕМ" | Х28: "РЕЗМН" |
Х23: "СНМН" | Х29: "ППРМН" |
Х30: "РМНМ" | |
Операторы: | |
У47: "РРПЗ:=1" | У63: "БСВПР:=БСВПР-ЕДН |
У48: "ОРБПЗ:=0" | У64: "БРгРПР:=РЕЗПР" |
У49: "БОПЗ:=ВХД" | У65: "СВМН:=1" |
У50: "БРгПМН:=ВХЧМН" | У66: "ОСМН:=ПМН-ВМН" |
У51 "БРгВМН:=ВХЧМН" | У67: "ЦДЧМ:=1" |
У52: "БФЗРМН:=КОПМН" | У68: "ЦДЧМ:=0" |
У53: "СВМН:=0" | У69: "БРгРМН:=1" |
У54: "БСВМН:=ПМН" | У70: "БРгРМН:=0" |
У55: "БСВМН:=ВМН" | У71: "БРгПМН:=ОСМН" |
У56: "РЕЗМН:=ПМН-ВМН" | У72: "БРгПМН:=СДВМН" |
У57: "РЕЗМН:=ВМН-ПМН" | У73: "ОСМН:=ПМН+ВМН" |
У58: "ЗРРЗМ:=ЗРВМН" | У74: "ОСМН:=ПМН-ВМН" |
У59: "РЕЗМН:=ПМН+ВМН" | У75: "БСВМН:=УМНМН" |
У60: "ЗРРЗМ:=ЗРПМН" | У76: "БРгВМН:=ССДМ" |
У61: "БРгРМН:=РЕЗМН" | У77: "БСВМН:=ПМН+БСВМН" |
У62: "БРгРМН:=СГСМ" | У78: "ЗРРЗМ:=ЗРПМН ЗРВМН" |
На фиг.34 представлен технический вариант блока хранения результата.
На фиг.35 изображена граф-схема алгоритма работы арифметического вычислителя и блока хранения результата.
На фиг.36 показана размеченная граф-схема алгоритма.
Содержательная ГСА управления приведена на фиг.35 и отражает работу блока управления и блока хранения результата (фиг.34).
Для описания алгоритма работы блока 4 хранения результата используются следующие идентификаторы:
189. РАВ - результат арифметического вычислителя.
190. РАО - результат арифметических операций.
191. АД СТЛ - адреса столбцов ОЗУ блока хранения результата.
192. АД СТР - адреса строк ОЗУ блока хранения результата.
Блок 144 алгоритма является начальным.
В блоке 145 алгоритма осуществляется подача сигнала сброса в нулевое состояние - СБРОС на входы всех элементов устройств.
В блоке 146 алгоритма происходит установка сигнала - пуск в единичное значение ПУСК:=1.
В блоке 147 алгоритма анализируется управляющий сигнал РРПЗ - разрешение работы блока с плавающей запятой. Если сигнал РРПЗ равен нулевому значению, то осуществляется переход на блок 149 алгоритма. При единичном значении сигнала РРПЗ, когда получено разрешение работы из блока управления, осуществляется переход на блок 148 алгоритма.
В блоке 148 алгоритма по команде БОПЗ:=ВХД на вход блока выполнения операций с плавающей запятой поступают входные числа и код операции.
В блоке 149 алгоритма анализируется управляющий сигнал РРФЗ - разрешение работы блока с фиксированной запятой. Если сигнал РРФЗ равен нулевому значению, то осуществляется переход на блок 155 алгоритма. При единичном значении сигнала РРФЗ, когда получено разрешение работы из блока управления, осуществляется переход на блок 150 алгоритма.
В блоке 150 алгоритма по команде БОФЗ:=ВХД на вход блока выполнения операций с фиксированной запятой поступают входные числа и код операции.
В блоке 151 алгоритма по командам: ВК:=0 - сигнал выбора кристалла ОЗУ равен нулю и Зп/Сч:=0 - сигнал записи - считывания информации в ОЗУ блока хранения результата равен нулевому значению, что соответствует режиму записи информации в ОЗУ блока. Эти сигналы позволяют записать результат в оперативное запоминающее устройство блока хранения результата (фиг.34).
В блоке 152 алгоритма по командам БХР:=ГИ и БХР:=ТИ на вход оперативного запоминающего устройства блока хранения результата поступают прямоугольные сигналы: генератор прямоугольных импульсов - ГИ и тактовые импульсы - ТИ для формирования адресов столбцов и строк в ОЗУ блока (фиг.34).
В блоке 153 алгоритма по команде БХР:=(РПЗ) или (РФЗ) на вход оперативного запоминающего устройства блока хранения результата поступают результаты с фиксированной запятой и с плавающей запятой по логической операции ИЛИ (фиг.34).
В блоке 154 алгоритма анализируется признак работы арифметического вычислителя. Управляющие сигналы: ОРБПЗ - окончание работы блока с плавающей запятой и КРБФЗ - конец работы блока с фиксированной запятой по логической операции ИЛИ определяют работу вычислителя. Если результат операции равен единице - работает хотя бы один блок - выход единица блока, то осуществляется переход на блок 145 алгоритма. В случае равенства нулевому значению результата операции ИЛИ - выход нуль блока осуществляется переход на конечный блок 155 алгоритма.
Блок 155 является конечным.
Работа блока хранения результата заключается в следующем.
Блок хранения результата предназначен для хранения результатов с фиксированной и с плавающей запятой. Результаты записываются по сформированным адресам двоичных счетчиков в оперативное запоминающее устройство блока. Блок 4 хранения результата - БХР содержит логическую схему ИЛИ DD223, двоичный счетчик Сч1 DD224, формирующий адреса столбцов в ОЗУ, двоичный счетчик Сч2 DD225, формирующий адреса строк в ОЗУ, оперативное запоминающее устройство ОЗУ DD226 (фиг.34). Входные информационные сигналы блока РФЗ - результат с фиксированной запятой и РПЗ - результат с плавающей запятой поступают на вход логической схемы ИЛИ DD223. Выходной сигнал схемы ИЛИ DD223 поступает на вход оперативного запоминающего устройства блока ОЗУ DD226. Перед началом работы вычислителя происходит обнуление двоичных счетчиков Сч1 и Сч2 входным сигналом ВК - выбор кристалла, поступающего из блока 5 управления на входы R - установки в нуль счетчиков (фиг.34). На суммирующие входы двоичных счетчиков Сч1 и Сч2 поступают прямоугольные импульсы ГИ и ТИ соответственно из блока 5 управления. Двоичные счетчики формируют адреса, по которым записываются данные в ОЗУ блока. Входной сигнал ВК - выбор кристалла, равный нулю, поступает на вход оперативного запоминающего устройства и формирует работу ОЗУ для записи информации. Входной сигнал Зп/Сч - запись-считывание, равный нулю, формирует работу оперативного запоминающего устройства в режиме записи информации (фиг.34). Выходной информационный сигнал ОЗУ - РАО, результат арифметических операций, является внутренним сигналом блока 4 хранения результата (фиг.34).
Логические условия: | |
Х31: "РРПЗ" | Х33: "ОРБПЗ или КРБФЗ" |
Х32: "РРФЗ" | |
Операторы: | |
У79: "БОПЗ:=ВХД" | У83: "БХР:=ГИ" |
У80: "БОФЗ:=ВХД" | У84: "БХР:=ТИ" |
У81:"ВК:=0" | У85: "БХР:=РПЗ или РФЗ" |
У82: "Зп/Сч:=0" |
Таблица 1 | |||
ЗРПЧ | ЗРВЧ | СУМ | СВ (код операции) |
0 | 0 | 1 | 0 (суммирование) |
0 | 1 | 1 | 1 (вычитание) |
1 | 0 | 1 | 1 (вычитание) |
1 | 1 | 1 | 0 (суммирование) |
Таблица 2 | |||
ЗРПЧ | ЗРВЧ | ВЫЧ | СВ (код операции) |
0 | 0 | 1 | 0 (вычитание) |
0 | 1 | 1 | 1 (суммирование) |
1 | 0 | 1 | 1 (суммирование) |
1 | 1 | 1 | 0 (вычитание) |
Таблица 3 | |||
ЗРПМН | ЗРВМН | СУММН | СВМН (код операции) |
0 | 0 | 1 | 0 (суммирование) |
0 | 1 | 1 | 1 (вычитание) |
1 | 0 | 1 | 1 (вычитание) |
1 | 1 | 1 | 0 (суммирование) |
Таблица 4 | |||
ЗРПМН | ЗРВМН | ВЫЧМН | СВМН (код операции) |
0 | 0 | 1 | 0 (вычитание) |
0 | 1 | 1 | 1 (суммирование) |
1 | 0 | 1 | 1 (суммирование) |
1 | 1 | 1 | 0 (вычитание) |
Источники информации
1. Карцев М.А. Арифметика цифровых машин. - М.: Наука. 1969. - 575 с.
2. Самофалов К.Г., Романкевич А.М., Валуйский В.Н. Прикладная теория цифровых автоматов. - Киев: Высш. шк., 1987. - 374 с.: ил.
3. Мкртчян С.О. Проектирование логических устройств ЭВМ на нейронных элементах. - М.: Энергия, 1977 г.
4. Дертоузос М. Пороговая логика. - М.: Мир, 1967 г.
5. Вавилов Е.И. и др. Синтез схем на пороговых элементах. - М.: Сов. радио, 1970 г.
6. Галушкин А.И. Синтез многослойных схем распознавания образов. - М.: Энергия, 1974 г.
7. Позин И.В. Моделирование нейронных структур. - М.: Наука, 1970 г.
8. Заявка RU №95104370/09 от 01.03.1995 г. Бюл. №15, 1997 г. (аналог).
9. Заявка RU №4892584/24 от 19.12.90 г. Бюл. №25, 1995 г. (аналог).
10. Заявка RU №99109089/09 от 04.07.1997 г. Бюл. №7 (1 ч.), 2001 г. (аналог).
11. Патент №2205444 27.05.2003 г. (прототип).
Класс G06F7/57 арифметико-логические устройства (ALU), те оборудование или устройства для выполнения двух или более операций, относящихся к группам 7/483
Класс G06F7/483 для вычислений над числами, представленными нелинейной комбинацией машинных чисел, например рациональными числами, системами с логарифмами, числами с плавающей запятой