Арифметическо-логическое устройство для обработки десятичных данных
Иллюстрации
Показать всеРеферат
Изобретение относится к вьгчислительной технике и может быть использовано для работы в составе мультипроцессора быстродействующей элект ронно-вычислительной машины. Устройство предназначено для выполнения арифметических операций над десятичными операндами илогических операций над полями переменной длины параллельно с другими операциями при мультипроцессорной организации ЭВМ. Цель изобретения - повьшение быстродействия . Поставленная цель достигнута с помощью введения в арифметико-логическое устройство, содержащее блок управления, блок распределения синхросигналов , четыре селектора, регистр первого слагаемого, регистр второго слагаемого, блок сумматора, параллельный сумматор, регистр результата, сдвигатель, выходной регистр и ре-, гистр непосредственного операнда блока анализа результата, двух буферных регистров, пятого селектора, входного регистра, кольцевого сдвигателя и элемента И, а также оригинальной организацией связей между блоками устройства. 1 з.п. ф-лы, 8 ил. с (Л ю 4 4 а О)
СОЮЗ СОВЕТСНИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИН
„„SU„„1244660
А1
I5g 4 G 06 F 7/38
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
l3, :
<> 6!з;= .
ГОСУДАРСТВЕННЫЙ НОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (21) 3803686/24 — 24 (22) 19. 10 ° 84 (46) 15.07.86..Бюл. ¹ 26 (72) С.З.Кручинин, Г.А.Тузова и В.Г.Моисеев (53) 681.3(088.8) (56) Патент CIIIA ¹ 3462744, кл. 340-172.5, опублик. 1969.
Арифметико-логический блок про-. цессора ЕС2060 (техническое описание)
М., 1977, с. 13-15. (54) АРИФМЕТИКО-ЛОГИЧЕСКОЕ УСТРОИСТВО ДЛЯ ОБРАБОТКИ ДЕСЯТИЧНЫХ ДАННЫХ (57) Изобретение относится к вычислительной технике и может быть использовано для работы в составе муль типроцессора быстродействующей элект ронно-вычислительной машины. Устройство предназначено для выполнения арифметических операций над десятичными операндами и: логических операций над полями переменной длины параллельно с другими операциями при мультипроцессорной организации 3ВМ. Цель изобретения — повышение быстродействия. Поставленная цель достигнута с помощью введения в арифметика-логическое устройство, содержащее блок управления, блок распределения сикхросигналов, четыре селектора, регистр первого слагаемого, регистр второго слагаемого, блок сумматора, параллельный сумматор, регистр результата, сдвигатель, выходной регистр и регистр непосредственного операнда блока анализа результата, двух буферных регистров, пятого селектора, входного регистра, кольцевого сдвигателя и элемента И, а также оригинальной организацией связей между блоками устройства. 1 з.п. ф-лы, 8 ил.
1 1244660 2
Изобретение относится к вычислительной технике и может быть использовано для работы в составе мультипроцессора быстродействующей электронновычислительной машины.
Целью изобретения является повышение быстродействия.
На фиг. 1 представлена структурная схема арифметико-логического устройства обработки десятичных данных; на фиг. 2 — структурная схема. блока анализа; на фиг ° 3 — структурная схема блока суммирования, на фиг. 4— структурная схема блока управления.
Арифметико-логическое устройство для обработки десятичных данных ,(фиг. 1) содержит регистр 1 первого слагаемого, регистр 2 второго слагаемого, регистр 3 результата, выходной регистр 4, регистр 5 непосредственного операнда, параллельный сумматор
6, сдвигатель 7, блок 8 суммирования, первый, второй, третий и четвертый коммутаторы 9 — 12, блок 13 управления, выход 14 блока 8 суммирования, кольцевой сдвигатель 15, блок 16 анализа, входной регистр 17, первый и второй буферные регистры 18 и 19, пятый коммутатор 20, блок 21 элементов И, информационные входы 22 и 23 устройства, вход 24 запросного слова устройства, выход 25 блока 8 суммирования, информационный выход 26 устройства, выходы 27 и 28 занятости и запросного слова устройства, выходы
29 и 30 констант блока 13 управления, выходы 31-33 блока 13 управления соответственно номера байта результата, номера байта первого операнда и номе.ра байта второго операнда, выходы
34. 1-34. 14 операционных полей блока
13 управления, входы 35-39 условий ветвления блока 13 управления, входы
40-42 блока 8 суммирования,.
Блок 16 анализа (фиг. 2) содержит группу элементов ИЛИ 43, группу элементов И 44, группу элементов 45 запрета, группу элементов ИЛИ 46, группу элементов ИЛИ 47, группу элементов 48 запрета, регистры 49 и 50 суммы и регистры 51 и 52 переноса.
Блок 8 суммирования (фиг. 3) содержит коммутаторы 53-60, корректирующие сумматоры 61 и 62, сумматоры
63 и 64, корректирующие сумматоры 65 и 66, регистр 67 результата, регистр
68 переноса, элемент И 69, выходы
70. 1, 70.2 коммутатора 55, выходы
71.1, 71.2 коммутатора 56, выходы
72. 1, 72.2 соответственно корректирующих сумматоров 65 и 66.
/ .Блок 13 управления (фиг. 4) содержит.коммутатор 73 адреса, коммутаторы
74 и 75, элемент И 76, выход 77 коммутатора 73, регистр 78 адреса, ре-. гистр 79 адреса возврата, регистр 80 занятости, узел 81 памяти, регистр
82 микрокоманд, регистр 83 знака, 10. счетчик, 84 байтов первого операнда, счетчик 85 байтов второго операнда, счетчик 86 длины первого операнда, счетчик 87 длины второго операнда, регистр 88 номера байта результата, регистр 89 номера байта второго операнда,, управляющие выходы 90.j-90.11 регистра 82 микрокоманд.
В диаграммах алгоритмов выполнения операций используются следующие сок20 ращения: А — адрес возврата, ГОТЗП— готовность записи; ДСЛ вЂ” режим сложения десятичных цифр в блоке 8 сум-, мирования; ЗАПТСМ вЂ” размещение записи на первый и второй регистры суммы; 5 КОММ 1 — первый входной коммутатор 53 блока 8 суммирования; КОИМ 2 — второй входной коммутатор 54 блока 8 суммирования; КСД вЂ” кольцевой сдвигатель
15; М11 (О/7) — первая группа сигна- . лов управления первым буферным регистром 18 (восемь бит); М12 (О/7) вторая группа сигналов управления первым буферным регистром 18; М21 (0/7) — первая группа сигналов управления вторым буферным регистром 19;
З5 М22 (О/7) .— вторая группа сигналов управления вторым буферным регистром 19; НОП вЂ” непосредственный операнд; ОП1 — первый операнд, ОП2— второй операнд; ПЗП вЂ” признак записи
40 результата .в выходном запросном слове устройства; ПКОН вЂ” признак конца операнда.; ПОП1 — признак первого операнда; ПОП2 - признак второго операнда; РА — регистр 79 адреса воз45 врата; PAMK — регистр 78 адреса;
РАН1 (О/7) — первая группа сигналов разрешения анализа (восемь бит);
РАН2 (0/7) — вторая группа сигналов разрешения анализа; РВХ вЂ” входной регистр 17; РВЫХ вЂ” выходной регистр
4; РБ1 — первый буферныи регистр 18;
РБ2 — второй буферный регистр 19;
P3H — регистр 83 знака; РНОП вЂ” регистр 5 непосредственного операнда;
SS PP — регистр 3 результата; РРБ — регистр 67 результата блока 8 суммирования, РС1 — регистр 1 первого слага емого; РС2 — регистр 2 второго слага1
3 12446 емого; СБ11 — коммутатор 55 блока 8 суммирования; СБ 12 — коммутатор 56 блока 8 суммирования; .СБ21 /О/3) коммутатор 57 блока 8 суммирования;
СБ21 (4/7) — коммутатор 58 блока 8 суммирования„ СБ22 (О/3) — коммутатор 59 блока 8 суммирования; СБ22 (4/7) — коммутатор 60 блока 8 суммирования; СД — сдвигатель 7; СЕЛ1 первый коммутатор 9; СЕЛ2 — второй коммутатор 10; СЕЛЗ вЂ” третий коммутатор 11; СЕЛ4 — четвертый коммутатор 12; СЕЛ5 — пятый коммутатор 20;
CM — параллельный сумматор 6; СЧС счетчик слов; ТСМ1 — первый регистр
49 суммы; ТСМ2 — второй регистр 50 суммы; ТП вЂ” регистр переноса; ТПБ регистр 68 переноса блока сумматора.
Функциональное назначение выходов
34. 1-34. 14 операционных полей блока
13 управления приведено в таблице.
Арифметико-логическое устройство для обработки десятичных данных предназначено для выполнения арифметических операций над десятичными операндами и логических операций над полями переменной длины параллельно .с другими операциями при мультипро25 цессорной организации ЭВМ. Десятичные операндьг — это целые числа, представ30 ленные в двоично-десятичном коде,,причем каждая десятичная цифра кодируется группой из четырех двоичных разрядов. Таким образом, каждый байт операнда содержит две десятичных цифры. Код знака операнда располагается З5 в младших четырех разрядах операнда.
Количество байт (длина) операнда задается в операции и Может составлять от одного до шестнадцати. Под полями переменной длины понимается символьная информация, представленная в дво ичном коде, количество байт (длина) которой задается в операции.
Блок 13 управления реализован микропрограммным способом, горизон- 4> тальным микропрограммированием. Адрес первой микрокоманды вырабатывается по коду 24.1 операции. При этом, поскольку регистр 60 занятости устройства по длинной операции находится в состоянии ноль, на выходе элемента
И 76 формируется нулевое .значение младших разрядов адреса, которые совместно с кодом 24.1 операции, прошедшем через первый коммутатор 74 адреса, формируют на входе второго коммутатора 75 адреса первой микрокоманды операции. Этот адрес записывается
60 4 на регистр 78 адреса, что вызывает считывание первой микрокоманпы из узла 81 памяти микрокоманд и записи ее на регистр 82 микрокоманды. Эта микрокоманда устанавливает регистр 80 занятости устройства по длинной операции в состояние единица, что открывает элемент И 76, обеспечивая подключение к второму коммутатору 75 ко мутатора 73 адреса, а адресацию следующей микрокоманды операции.
Младшие разряды адреса определяют выполнение условных переходов в ходе выполнения операции и формируются накоммутаторе 73 адреса: младшие разряды адреса 90.3 с выхода регистра 82
Ю микрокоманд изменяются в соответствии с алгоритмом выполнения операции под воздействием условий ветвления 35-39, поступающий с других блоков устройства, входного запросного слова 24 устройства, и состояния регистров 83, 88 и 89, счетчиков 86 и 87 и кода
90.2 типа ветвления.
Такой процесс адресации микрокоманд может быть нарушен микроприказом 90.4 "РАМК:=РАБ", который подключает к регистру 78 адреса через коммутатор ?5 адреса выход регистра
79 адреса возврата. Это позволяет, записав в одной иэ микрокоманд по микроприкаэу 90.5 "РАВ:=AB" адрес возврата 90 ° 6 на регистр 79 адреса возврата, использовать его в следующих микрокомандах, например, для выхода из подпрограмм.
Блок 8 суммирования работает следующим образом.
Коммутаторы 53 и 54 под управлением соответственно кода 32 номера байта первого операнда и кода 33 номера байта второго операнда выбирают один из возьми байтов соответственно с выхода регистра 1 первого слагаемого и выхода регистра 2 второго слагаемого. Коммутатор 55 под управлением микроприказов 34.8.1 выбирает для дальнейшей обработки либо байт с выхода коммутатора 53, либо байт с выхода регистра 5 непосредственного .операнда (вход 42), либо первую константу 29 с выхода блока 13 управления. Аналогично коммутатор 56 под управлением микроприказов 34.8.2 выбирает либо код 32 номера байта первого операнда, либо байт с выхода коммутатора 54, либо байт с выхода регистра 5 непосредственного операнда, либо первую константу 29 с выхо5 12446 да блока 13 управления. Коммутаторы
57 и 58 под управлением микроприказов
34.8.3 и 34.8.4 соответственно выполняют все возможные пересылки старших четырех разрядов 70.1 и младших четырех разрядов 70,2 байта, сформированного на коммутаторе 55.
Аналогично коммутаторы 59 .и 60 под управлением микроприказов 34.8.5 и 34 ° 8.6 соответственно выполняют все .1О возможные пересылки старших четырех разрядов 7 1. 1 и младших четырех разрядов 71.2 байта, сформированного на коммутаторе 56.
Корректирующие сумматоры 6 1 и 62 при наличии микроприказа 34.8.7 "ДСЛ" выполняют сложение информации с вьмодов соответственно коммутаторов 57 и 58 с кодом "0110,. ", а при отсутст вии этого микроприказа не изменяют данную информацию.
Сумматоры 63 и 64 производят преобразование соответственно старших четырех разрядов и младших четырех разрядов байтов с выходов корректи- 25 рующих сумматоров 61 и 62 (первый операнд) и коммутаторов 59 и 60 (второй операнд) под управлением микроприказов 34.8.8, задающих выполняемую функцию. Перенос с выхода сумма- ЗО тора 64 поступает на соответствующий вход первого сумматора. 63„ перенос с выхода которого запоминается на регистре 68 переноса и при наличии, в следующей микрокоманде микроприказа З5
34.8.9 "СИБ(7):=ТПБ" через элемент
И 69 поступает на соответствующий вход сумматора 64. Корректирующие сумматоры 65 и 66 при наличии микроприказа 34.8.7 "ДСЛ"g0 корректируют сумму с выходов сумматоров 63 и 64 в соответствии с переносами на выходе этих сумматоров.
Регистр 1 первого слагаемого записывает восемь байтов с выхода ком45 мутатора 9, причем семь старших байтов записываются на семь регистров старших байтов, а младний (восьмой} байт — на два регистра младших байта таким образом, что старшие четыре разряда этого байта записываются на первый, а младшие четыре раэряда— на второй регистр младшего байта.
Семь байтов с выходов регистров старших байтов, а также старшие четыре разряда восьмого подаются на выход регистра 1 первого слагаемого без изменений. Четыре разряда с выхо60 6 да второго регистра младшего байта блокируется при наличии сигнала на выходе 34.1 блока 13 управления. Регистр 2 второго слагаемого работает аналогичным образом.
Блок 16 анализа работает следующим,образом.
Каждый из восьми элементов ИЛИ 43 выполняет логическое сложение восьми разрядов соответствующего байта с выхода регистра 3 результата. Элементы И 44 и запрета 45 выполняют логическое умножение полученных величин на значения микроприказов 34.14 и их инверсию.
Микроприказы 34..14 формируются в блоке 13 управления в соответствии с кодом 24.4 длины первого операнда в виде двух возьмиразрядных групп сигналов РАН1(0/7) и РАН2(0/7), причем в одном такте формируется только . одна из этих групп сигналов.
Сигналы с выходов первого и второ; го элементов ИЛИ 46 проходят через соответственно первый и второй элементы ИЛИ 47, первый и второй элементы 48 запрета, при отсутствии микроприказов 34. 14.9 "TCN1,21=0", и записываются на соответственно первый регистр 49 суммы и второй регистр
50 суммы, причем, если первый и второй регистры суммы устанавливаются в состояние единица, то за счет образных связей с выхода первого регистра 49 суммы на вход первого элемента KIN 47 ис выхода второгорегистра 50 суммы на вход второго элемента .
ИЛИ 47, это состояние сохраняется до прихода микроприказа 34.14.9
"ТСМ1,2:=0", который переводит первый и второй регистры суммы в состояние l1 tt ноль . Таким образом, первый регистр
49 суммы состоянием "единица" отмечает событие "6BHTbI с выхода регистра
3 результата, не принадлежащие полю первого операнда (результата), не равны нулю", а второй регистр 50 суммы — событие "байты с выхода регистра 3 результата, принадлежащие полю первого операнда (результата), не р,авны нулю .
Первый регистр 51 переноса фиксирует перенос с выхода переноса параллельного сумматора б, а второй регистр 52 переноса перезапоминает этот перенос для использования в следующем такте.
1244660
Сдвигатель 7 выполняет сдвиг информации с выхода коммутатора 1 1 на четыре разряда вправо с замещением старших четырех разрядов четырехразрядной константой 30 или сдвиг влево с замещением четырех младших разрядов младшими четырьмя разрядами с выхода регистра 5 непосредственного, операнда, пропущенных через элемент
И 21..
Кольцевой сдвигатель 15 выполняет циклический сдвиг на любое количество байтов влево за один машинный такт.
Арифметико-логическое устройство
15 для обработки десятичных данных ра— ботает следующим образом.
Любая арифметическая операция над двоично-десятичными данными начинается с процедуры установки опе— рандов к целочисленной границе двойного слова (ПЦГ).
Эта процедура начинается сразу после запуска устройства на выполнение операции и приема на входной регистр 17 первого двойного слова второго операнда, содержащего младшие байты этого операнда. Блок 13 управления формирует код 34.4 сдвига, который остается постоянным на. время
30 установки второго операнда и определяется кодом 24.3 номера младшего байта второго операнда. Первая микро. команда установки записывает на второй буферный регистр 19 информацию с выхода. кольцевого сдвигателя 15.
Если второй операндрасположен в одном двойном слове,то следующая микрокоманда запи1нет установленный второй операнд нарегист 2второго слагаемого.
В противном случае, после приема второго двойного слова второго операнда на входной регистр 1 7, в старшие байты второго буферного регистра 19 по микроприказам 34.13.15-34.13.22 "M22 (О/7)" записывается информация с выхода кольцевого сдвигателя 15. Следующая микрокоманда переписывает восемь младших байтов второго операнда на регистр 2 второго слагаемого и по микроприказам 34 ° 13 .15-34.13 ° 22
"М21(0/7)" записывает в младшие байты второго буферного регистра "I9 информацию с выхода кольцевого сдвигателя 15. После этого, если второй операнд размещен в двух двойных, словах, микропрограмма переходит к установке первого операнда. В противном случае, после приема в устройство третьего
8 (последнего) двойного слова второго операнда на входной регистр 17 н старшие байты второго буферного регистра 19 по микроприказам 34.13. 15-34. 13.22 "M22(0/7) " записывается информация с выхода кольцевого сдвигателя 15, после чего микропрограмма переходит к установке первого операнда.
После приема первого двойного слова первого операнда на входной регистр 17 производится запись по микроприказам 34. 13.7 — 34. 13. 14
"M11(0/7)" в младшие байты первого буферного регистра 18 информации с выхода кольцевого сдвигателя 15. Ес— ли первый операнд размещен в одном двойном слове, то следующая микрокоманда переписывает установленный первый операнд на регистр 1 первого слагаемого, а на регистр 78 адреса записывает. содержимое регистра 79 адреса возврата, содержащего адрес первой микрокоманды, которая выполняется после процедуры установки, т.е. выполняет переход по адресу возврата. Если же первый операнд расположен более, чем в одном двой-. ном слове, то после приема на вход— ной регистр 17 второго двойного слова первого операнда в старшие байты первого буферного регистра по микроприказам 34. 13-7-34. 13. 14 "M1 2(0/7)" записывается информация с выхода кольцевого сдвигателя.
Следующая микрокомандапереписывает, младшие восемь байтов первого операнда на регистр 1 первого слагаемого и по микроприказам 34. 13.7-34.13.14
"M11(0/7)" записывает в младшие байты первого буферного регистра 18 инфор-. мацию с выхода кольцевого сдвигателя 15. Если первый операнд размещен в двух двойных словах, то последняя микрокоманда установки выполнит переход по адресу возврата, в противном случае, после приема третьего (последнего) двойного слова первого операнда на входной регистр 17 в старшие байты первого буферного регистра 18 по микроприказам 34.13.7-34.13.14
"M12(0/7) " записывается информация с выхода кольцевого сдвигателя 15, после чего производится переход по адресу возврата. Таким образом, после процедуры установки операнды размещаются на регистрах устройства следующим образом: младшие восемь байтов
9 12 первого операнда — на регистре 1 первог о слагаемого, а младшие восемь байтов второго операнда — на регистре
2 второго слагаемого, причем младшие четыре разряда этих операндов эаписаны в младших разрядах (60/63) этих регистров, старшие восемь байтов пер-. вого операнда — на первом буферном регистре 18, а старшие восемь байтов второго операнда — на втором буфер-ном регистре 19.
Поскольку двойные слова операндов поступают в устройстве от процессора команд через такт, то процедура установки операндов практически совмещена по времени с приемом операндов в устройство.
Операция сложения десятичных данных (фиг. 6) начинается в устройстве с установки на регистре 79 адреса возврата адреса "АДР1" первой после процедуры установки ПЦГ микрокоманды, ( после чего выполняется процедура ПЦГ.
Первая после установки ПЦГ микрокоманда устанавливает счетчик 84 . байтов первого операнда в состояния
"111", что вызывает появление на выходе коммутатора 53 блока 8 младшего байта первого операнда, который содержит в младших четырех разрядах код знака операнда 4. По микроприказам 34.8.1, 34.8.4 и 34.8.8 этот код знака записывается на регистр 67 результата блока 8. Если этот код соответствует знаку "плюс", то следующая микрокоманда по микроприказу 90.7 устанавливает регистр 83 знака в состояние ноль, а если — минус, то этот регистр 83 знака устанавливается в состояние "единица". .В том же такте микроприказами
34.1 и 34.2 обнуляются разряды (60/63) на выходе регистров 1 и 2 первого и второго слагаемых, что исключает коды знаков из последующих действий„и по микроприказу 34.6,1 производится сложение младших восьми байтов операндов на рапаллельном сум.маторе 6, при этом по микроприказам
34. 14. 1-34. 14.8:"РАН1(0/7) " устанавливаются первый и второй регистры.49 и 50 суммы, а первый регистр 51 переноса фиксирует возникающий перенос, В следующем такте младшие восемь байтов результата в регистре 3 резуль тата переписываются по микроприказу
34.3.3 на входной регистр 17, старшие восемь байтов первого и второго операндов переписываются соответственно
44660 10 с первого буферного регистра 18 на регистр 1 первого слагаемого и со второго буферного регистра 19 на регистр 2 второго слагаемого, после. чего производится сложение этих байтов по микроприказу 34.6.2 с учетом переноса от предыдущего сложения, зафиксированного на втором регистре
52 переноса. При этом по микроприказам 34. 14. 1-34. 14. 8 "РАН2(0/7) " устанавливаются первый и второй регистры
49 и 50 суммы.
Состояние единица второго регистра 52 переносов или первого регистра 49 суммы означает переполнение в результате выполнения сложения, поэтому в этом случае в выходном запрос. ном слове 28 устройства устанавливается код условия, равный трем, при этом на регистре 67 результата блока
8 формируется младший байт результата, старшие четыре разряда которого выбираются из старших четырех разрядов младшего байта суммы, а млад2 шие четыре разряда — из кода 29 константы.
Таким образом, поскольку код 29 константы задает знак результата
"плюс", то, если регистр 83 знака находится в состоянии ноль", то на регистр 1 первого слагаемого в младший байт записывается байт результата с выхода 33 блока 8, содержимое регистра f первого слагаемого переписывается на выходной регистр 4 и
35 выполняется процедура установки результата к реальной границе (установка ПРГ) . Если же регистр 83 зна- . ка находится в состоянии "едини"ца", т.е. результат операции — число
4О отрицательное, то на регистре 67 результата блока 8 формируется младший байт результата со знаком "минус", который в следующем такте записывает. ся на регистр 1 первого слагаемого, 45 после чего содержимое этого регистра переписывается на выходной регистр 4 и выполняется процедура установки
ПРГ.
Если переполнение не зафиксировано, то после формирования на регистре 67 результата блока 8 младшего байта результата с кодом знака "плюс" проверяется состояние второго регистра 50 суммы. Если он находится в состоянии "ноль", т.е. результат равен нулю, то код условия в выходном запросном слове 28 устанавливается равным нулю, на регистр 1 пер11 12 вого слагаемого записывается младший байт результата, и содержимое этого регистра переписывается на выходной регистр 4, после чего выполняется процедура установки ПРГ.
Если результат не равен нулю (второй регистр 50 суммы находится в состоянии единица ) то проверяется состояние регистра 83 знака. Если он находится в состоянии ноль, то результат сложения положительных чисел больше нуля, код условия в выхопном запросном слове 28 устанавливается равным двум, младший байт результата переписывается с выхода 14 блока 8 сумматора на регистр 1 первого слагаемого после чего содержимое этого регистра переписывается на выходной регистр 4. и выполняется процедура установки ПРГ. Если же регистр 83 знака находится в состоянии "единица", то результат сложения отрицательных чисел меньше нуля и на регистре 67 результата блока 8 сумматора формируется младший байт результата с кодом знака минус, который в следующем такте записывается на регистр 1 первого слагаемого, после чего содержимое этого регистра переписывается на выходной регистр 4, код условия в выходном запросном слове 28 устанавливается равным единице и выполняется процедура установки ПРГ, которая завершает операцию. сложения, Операция вычитания десятичных данных начинается в устройстве с установки на регистре 79 адреса возврата адреса "АДК2" первой после процедуры
С установки ЦЦГ микрокоманды. Затем выполняется процедура установки ПЦГ, после завершения которой счетчик 84 байтов первого операнда устанавливается микроприказом 90,8 в состояние
"111 " что позволяет проанализировать код знака первого операнда и установить регистр 83 знака подобно тому, как это выполняется в операции сложения. После установки регистра
83 знака по микроприказам 34. 1 и
34.2 обнуляются разряды 60/63 на вью ходе регистров 1 и 2 первого и второго слагаемых, что исключает коды знаков из последующих действий, и по микроприказу 34.6.3 производится вычитание младших восьми байтов второго операнда из восьми младших байтов первого операнда на параллельном сумматоре 6, при этом по микроприка44660 12 зам 34. 14. 1 — 34. 1 4. 8 "РАН! (О/7)" устанавливаются первый и второй регистры
49 и 50 суммы, а первый регистр 51 переноса фиксирует возникающий пе5 ренос.
В .следующем такте восемь младших байтов разности с резистра 3 результата записываются на входной регистр
17, откуда в конце такта записываются на первый и второй буферные регистры
18 и 19. В этомже такте старшие восемь байтов операндов переписываются соответственно с первого буферного регистра 18 на регистр 1 первого слагаемого и со -второго буферного регистра 19 на регистр 2 второго слагаемого, пос- . ле чего по микроприказу 34.6.4. про— изводится вычитание старших восьми байтов второго операнда из старших восьми байтов первого операнда на па- раллельном сумматоре 6 с учетом переноса от предыдущего вычитания, зафиксированного на втором регистре 52 переноса. При этом по микроприказам
34, 14. 1-34. 14.8 "PAH2(0/7) " устанавливаются первый и второй регистры 49 и 50 суммы.
Состояние единица" второго регистра 52 переноса и состояние "ноль" первого регистра 49 суммы означает, что результат получен в прямом коде (параллельный сумматор 6 выполняет вычитание сложением первого операнда в прямом коде и второго операнда в дополнительном коде, поэтому при вычитании из большего числа меньшего возникает перенос, а не принадлежащие результату байты обращаются в ноль), т.е. первый one— ранд по модулю больше второго и знак разности совпадает со знаком первого операнда. Поэтому на регистстре 67 результата блока 8 формируется младший байт результата с кодом знака "плюс" и проверяется состояние второго регистра 50 суммы.
Если оно равно "нулю", то результат операции равен нулю и следующая микрокоманда записывает младший байт результата на регистр 1 первого слагаемого, устанавливает код усло-. вия в выходном запросном слове 28 равный нулю, переписывает содержимое этого регистра на выходной регистр 4, поспе чего выполняется процедура установки ПРГ.
Если же второй регистр 52 суммы находится в состоянии единица то анализируется регистр 83 знака.
Если он находится в состоянии "ноль", !
3 12
fI tI то знак ненулевого результата — плюс и последняя микрокоманда записывает на регистр 1 первого слагаемого младший байт результата с регистра
67 результата блока 8, код условия в выходном запросном слове 28 устанавливается равным двум, на выходной регистр 4 записывается содержимое регистра первого слагаемого, после чего выполняется процедура установки ПРГ. Если регистр 83 знака находится в состоянии единица, то на регистре 67 блока 8 формируется младший байт результата с кодом знака минус, который в следующем такте переписывается на регистр 1 первоФ го слагаемого, после чего содержимое этого регистра переписынается на выходной регистр 4, код условия в выходном запросном слове 28 устанавливается равным единице и выполняется процедура установки ПРГ.
Если после второго такта вычитания второй регистр 52 переноса находится н состоянии "ноль или первый регистр 49 суммы находится н состоянии "единица", то это означает, что результат вычитания получен в дополнительном двоично-десятичном коде.
Этот результат получается в случае, если первый операнд по модулю меньше второго операнда. Тогда для получения истинного результата необходимо вычесть полученный результат иэ нуля .
Для этого, сначала производится сброс первого и второго регистров
49 и 50 суммы по микроприказу
34 ° 14.9 "TCM! 2:=О". В следующем такте на параллельном сумматоре 6 по микроприказу 34.6.5 производится вычитание содержимого регистра 2 второго слагаемого (младшие восемь байтов результата в дополнительном коде) с обнуленными разрядами (60/63) из нуля. При этом по микроприказам
34. 14. 1-34. 14.8 "РАН 1(0/7) " производится установка первого и второго регистров 49 и 50 суммы. В следующем такте записанные на регистре 3 результата младшие восемь байтов в прямом коде переписываются на входной регистр .17, откуда — на первый буферный регистр 18, старшие восемь байтов результата в дополнительном коде переписываются на регистр 2 второго слагаемого и по микроприказу 34.6.6 вычитаются на параллельном сумматоре
6 из нуля с учетом переноса от предыдущего вычитания, зафиксированного
44660 !4
10 !
45 на втором регистре 52 переноса. При этом по микроприказам 34.14.1-34.14.8
"PAH2(0/7)" производится установка первого и второго регистров 49 и 50 суммы. Поскольку нулевого результата н дополнительном коде не существует, код условия и знак результата определяются, исходя из знака первого операнда (состояние регистра 83 знака) и наличия переполнения. Если регистр 83 знака находится н состоянии
"ноль", то на регнстре 67 результата формируются младший байт результата со знаком минус, который н следующем такте записывается на регистр 1 первого слагаемого, после чего содержимое этого регистра переписывается на выходной регистр 4, и проверяется состояние первого регистра
49 суммы. Если он находится в состоянии "единица" (случай переполнения), то код условия устанавливается равным трем. В противном случае код условия устанавливается равным единице. После этого выполняется процедура установки IIPT
Если регистр 83 знака находится в состоянии "единица", то на регистре
67 результата формируется младший байт результата со знаком плюс,который в следующем такте записывается на регистр 1 .первого слагаемого, после чего содержимое этого регистра переписывается на выходной регистр 4. При этом,. если перный регистр 49 суммы находится н состоянии единица случай переполнения), то -устанавливается код условия, равный трем. В про- . тивном случае, код условия устанавливается рвным двум, после чего выполняется процедура установки ПРГ, завершающая операцию. Процедура уСтановки результата к реальной, границе .в оперативной памяти (установка ПРГ) завершает арифметические операции над десятичными данными.
В первом такте установки ПРГ формируется первое двойное слово результата:из восьми младших байтов результата, записанных на входной регистр
17. Это выполняется путем записи старших байтов с выхода кольцевого сднигателя 15 по микроприказам
34.13.7-34.13.14 "М11(0/7)" на первый буферный регистр 18, Код 34.4 сдвига формируется блоком 13 управления. Этот код сдвига сохраняется посГруппа, У
Сигнал, Ф
Микроприказы
Название группы
34. 1
РС1 (60/63) =0
РС2 (60/63) =0
34. 1 34.2
34. 2
34. 3
РВХ:=ОП
34.3.1
РВХ:=РВЫХ
34.3.2
34.3.3
РВХ:=РР
15 12446 тоянным до конца процедуры установки ПРГ.
В этом же такте восемь младших байтов результата переписываются с первого буферного регистра 18 на регистр 1
5 первого слагаемого, откуда — на выходной регистр 4.
Если результат расположен в одном двойном слове (количество двойных слов результата и первого операнда совпадает, поскольку результат замещает первый операнд), то двойное слово результата переписывается на регистр 1 первого слагаемого, откуда — на выходной регистр 4, а на управляющий выход 28 запросного слова устройства по микроприказу ПЗП:=1" выдается запросное слово на запись двойного слова результата с информационного выхода 26 устройства.
Если результат расположен в двух или трех двойных словах, то младшее .двойное слово результата переписывается на регистр 1 первого слагаемого, и на первый буферный регистр 18 по микроприкаэам 34.13.7-34.13.14 "М12(0/7)" записываются младшие байты с выхода кольцевого сдвигателя 15. В следующем такте восемь старших байтов результата записываются на входной регистр 17, после чего по микроприказам 34.13.7-34.13.14 "N11(0/7) " старшие байты с выхода кольцевого сдвигателя 15 записываются на первый буферный регистр 18. В этом же такте первое двойное слово результата записывается на выходной регистр 4 и выдается запрос в процессор команд на запись результата.
Если результат расположен в двух двойных словах, то после выдачи первого двойного слова результата вто1
Управление регистром 1 первого слагаемого
Управление регистром 2 второго слагаемого, Управление пятым коммутатором 20
60 16 рое двоиное слово результата переписывается с первого буферного регистра, 18 через регистр 1 первого слагаемого на выходной регистр 4 и выдается на информационный выход 26 устройства по. запросному слову на управляющем выходе 28 устройства.
Если результат расположен в трех двойных словах, то второе двойное .слово результата записывается на регистр 1 первого слагаемого, по микроприказам 34. 13 . 7-34. 13 . 14
"M12(0/7)" в младшие байты первого буферного регистра 18 записывается информация с выхода кольцевого сдвигателя 15.
После того, как первое двойное слово результата выдано,, второе двойное слово результата записывается на входной регистр 4 и выдается на информационный выход 26 устройства по запросному слову на управляющем выходе 28 устройства. После выдачи второго двойного слова результата третье двойное слово результата переписывается с первого буферного регистра 18 через регистр 1 первого слагаемого на выходной регистр 4, откуда выдается на информационный выход 26 устройства по запросному слову на управляющем выходе 28 устройства.
После выдачи всех двойных слов результата выполнение операции в устройстве прекращается и регистр 80 занятости устройства по длинной операции устанавливается в состояние ноль
Логические операции над полями переменной длины выполняются в арифматическо-логическом устройстве с использованием блока 8 по алгоритмам, аналогичным алгоритмам выполнения таких операций в известном устройстве °
1244660
34,4
Код сдвига
34 ° 5
РР: =PC 1+PC2
РР:=РС1+РС2+ТП
PP:=РС1-РС2
РР:=РС 1-РС2-ТП
РР:=0-РС2
РР:=0-РС2-ТП
34 ° 6.6
Управление сдвигателем 7 34.7.1
34. 7
Сдвиг = 0
34.7.?
Сдвиг влево
34.7.3
Сдвиг вправо
34.8. I
34. 8 ° 2.
СБ12:=РНОП
СБ12:=СО N S Т
34.8. 3
34.8.4
34,8.5
34.8.6
34.4 Управление кольцевым сдвигателем 15
34.5 Управление приемом в сдвигатель 7
34.6 Управление параллельным сумматором 6
34.8 Управление блоком 8 суммирования
34.6.1
34.6.2
34.6.3
34.6.4
34.6.5
18
Продолжение таблицы
СДВ(60/63):=РФ(4/7)
СБ11: =КОММ1
СБ11:=РНОП
СБ11:=СО N S Т
СБ12:=СЧБ1
СБ12: =КОИИ2
C521(0/3):=CB11(0/3)
СБ21(0/3):=СБ11(4/7)
СБ21(4/7):=СБ 11(4/7)
СБ21(4/7):=СБ11(0/3)
СБ22(0/3):=СБ12(0/3)
СБ22(0/3):=СБ12(4/7) СБ22(4/7):=СБ12(4/7) СБ22(4/7):=СБ 12(0/3) i?44660
) 3
34. 8. 7
ДСЛ
34.8.8
34.8.9 .
34. 9. 1
РС1:=РРБ
34.9.2
РС1: =РВЫХ
34.9.3
34.9.4
РС1: =РР
РС1: =РБ1
РС2:=РРБ
РС2:=РБ2
34. 10. 1
; 34,10.2
РВЫХ: =СР1
РВЫХ: =РС2
34. 11. 1
34. 11. 2
34.1?.1
РНОП:=НОП
34. 12. 2
34.13.1
РНОП: РРБ
РВХ: =СЕЛ5
34. 13. 2
РР:=СМ
34. 13.3
ЗАПТСМ
РРБ: =.СМБ
34. 13. 4
34. 13. 5
34;13.6
РВЫХ: =,СДВ
РНОП: =СЕЛ4
34. 13 ° 7-34. 13-14 ,34. 13. 15-34. 13. 22 34.9 Управление первым коммутатором 9
34.10 Управление вторым коммутатором 10 .
34 ° 11 Управление третьим коммутатором
34. 12 Управление четвертым коммутатором 12
34. 13 Управление приемом данных
34. 14 Управление блоком 16 анализа
Продолжение таблицы
РРБ:=СБ21+СБ22
РРБ:=СБ21-СБ22
РРБ:=СБ21ЧСБ22
РРБ:=СБ214СБ22
РРБ:=СБ21®СБ22 . СМБ(7):=ТПБ
М11(0/7) (М12(0/7)
M21(0/7) (M22(0/7) 34. 14. 1-34. 14. 8 РАН1(0/7) (РАН2(0/7) ) 34. 14.9 ТСМ1,2: =01
21
Ф