Изобретение относится к вычислительной технике и может быть использовано для работы в составе мультипроцессора быстродействующей электронно- вычислительной машины.
Целью изобретения является повышение быстродействия.
На фиг. 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, выходы
5
0
5
0
5
0
5
0
5
72.1, 72.2 соответственно корректирующие: сумматоров 65 и 66.
Блок 13 управления (фиг. 4) содер,- жит.коммутатор 73 адреса, коммутаторы 74 и 75, элемент И 76, выход 77 коммутатора 73, регистр 78 адреса, ре-; гистр 79 адреса возврата, регистр 80 занятости, узел 81 памяти, регистр 82 мшсрокоманд, регистр 83 знака, счетчигь; 84 байтов первого операнда, счетчик 85 байтов второго операнда, счетч1ж 86 длины первого операнда, счетчик 87 длины второго операнда, регистр 88 номера байта результата, регистр 89 номера байта второго операнда., управляющие выходы 90.-90.11 регистра 82 микрокоманд.
В диаграммах алгоритмов выполнения операций используются следующие сокращения: АВ - адрес возврата; ГОТЗП- готовность записи; ДСЛ - режим сложения десятичных цифр в блоке 8 мирования; ЗАПТСМ - размещение записи на первый и второй регистры суммы; КОММ 1 - первый входной коммутатор 53 блока 8 сут4мирования; КОММ 2 - второй входной коммутатор 54 блока 8 сумми- рован1 гя; КСД - кольцевой сдвигатель 15; Mil (0/7) - первая группа сигна- лов управления первым буферным регистром 18 (восемь бит); М12 (0/7) - вторая группа сигналов управления первьпу буферным регистром 18; М21 (0/7) - первая группа сигналов управления вторым буферным регистром 19; М22 (0/7) :- вторая группа сигналов управления вторым буферным регистром 19; НОП - непосредственньй операнд; от - первый операнд; ОП2 - второй операнд; ПЗП - признак записи результата .в выходном запросном слове устройства; ПКОН - признак конца операнда; ПОП1 - признак первого операнда; П0112 - признак второго операнда; РАВ - регистр 79 адреса возврата; РАЖ - регистр 78 адреса; РАН1 (0/7) - первая группа сигналов разрешения анализа (восемь бит); РАН2 (0/7) - вторая группа сигналов разрешения анализа; РВХ - входной регистр 17; РВЫХ - выходной регистр 4; РБ1 - первый буферньй регистр 18; РБ2 - второй буферньй регистр 19; РЗН - регистр 83 знака; РНОП - регистр 5 непосредственного операнда; РР - регистр 3 результата; РРБ - ре- гистр 67 результата блока 8 суммирования; РС1 - регистр 1 первого слага емого; РС2 - регистр 2 второго слагв
10
t5
20
25
емого; СБ11 - KOMt-iyraTop 55 блока 8 суммирования; СБ12 - коммутатор 56 блока 8 суммирования; ,СБ21 /0/3) - коммутатор 57 блока 8 суммирования; СБ21 (4/7) - коммутатор 58 блока 8 суммирования,; СБ22 (0/3) - коммутатор 59 блока 8 суммирования; СБ22 (4/7) - коммутатор 60 блока 8 суммирования; СДВ - сдвигатель 7; СЕЛ1 - первый коммутатор 9; СЕЛ2 - второй коммутатор 10; СЕЛЗ - третий коммутатор 11; СЕЛ4 - четвертый коммутатор 12; СЕЛ5 - пятый коммутатор 20; СМ - параллельньй сумматор 6; СЧС - счетчик слов; ТСМ1 - первый регистр 49 суммы; ТСМ2 - второй регистр 50 суммы; ТП - регистр переноса; ТПБ - регистр 68 переноса блока сумматора.
Функциональное назначение выходов 34,1-34.14 операционных полей блока 13управления приведено в таблице.
Арифметико-логическое устройство для обработки десятичных данных предназначено для выполнения арифметических операций над десятичными операндами и логиче ских операций над полями переменной длины параллельно ,с другими операциями при мультипроцессорной организации ЭВМ. Десятичные операнды - это целые числа, представленные в двоично-десятичном коде, .прячем каждая десят.ичная цифра кодируется группой из четырех двоичных разрядов. Таким образом, каждый байт операнда содержит две десятичных цифры. Код знака операнда располагается 35 в младших четырех разрядах операнда. Количество байт (длина) операнда задается в операции и может составлять от одного до шестнадцати. Под полями переменной длины понимается символь- 0 нал информация, представленная в двоичном коде, количество байт (длина) которой задается в операции.
Блок 13 управления реализован микропрограммным способом, горизон- 5 тальным микропрограммированием. Адрес первой микрокоманды вырабатывается по коду 24.1 операции.- При этом, поскольку регистр 60 занятости устройства по длинной операции находится в состоянии ноль, на выходе-Элемента И 76 формируется нулевое .значение младших разрядов адреса, которые совместно с кодом 24.1 операции, прошедна регистр 78 адреса, что вызывает считывание первой микрокоманды из узла 81 памяти микрокоманд и запис ее на регистр 82 микрокоманды. Эта микрокоманда устанавл1шает регистр занятости устройства по длинной оп рации в состояние единица, что о крывает элемент И 76, обеспечивая подключение к второму коммутатору коммутатора 73 адреса, а адресацию следующей микрокоманды операции. Младшие разряды адреса определяют полнение условных переходов в ходе выполнения операции и формируются коммутаторе 73 адреса: младшие раз ряды адреса 90.3 с выхода регистра микрокоманд изменяются в соответст с алгоритмом выполнения операции п воздействием условий ветвления 35поступающий с других блоков устрой ва, входного запросного слова 24 устройства, и состояния регистров 88 и 89, счетчиков 86 и 87 и кода 90,2 типа ветвления.
Такой процесс адресации микроко манд может быть нарушен микроприка зом 90.4 РАМК: РАВ, который подключает к регистру 78 адреса через коммутатор 75 адреса выход регистр 79 адреса возврата. Это позволяет, записав в одной из микрокоманд по микроприказу 90,5 адрес возврата 90.6 на регистр 79 адреса возврата, использовать его в спедуто щих микрокомандах, например, для выхода из подпрограмм.
Блок 8 суммирования работает следующим образом.
Коммутаторы53 и 54 под управле нием соответственно кода 32 номера байта первого операнда и кода 33 н мера байта второго операнда выбира один из возьми байтов соответствен но с выхода регистра 1 первого сла гаемого и выхода регистра 2 второг слагаемого. Коммутатор 55 под упра лением микроприказов 34.8.1 выбира для дальнейшей обработки либо байт выхода коммутатора 53, либо байт с выхода регистра 5 непосредственног 50 операнда (вход 42), либо первую ко станту 29 с выхода блока 13 управл ния. Аналогично коммутатор 56 под управлением микроприказов 34.8,2 в бирает либо код 32 номера байта пе
30
шем через первый коммутатор 74- адре- 55 вого операнда, либо байт с выхода са,формируют на входе второго комму- коммутатора 54, либо байт с выхода татора 75 адреса первой микрокоманды операции. Этот адрес записьюается
регистра 5 непосредственного операн да, либо первую константу 29 с выхо
10
t5
20
25
е350 5на регистр 78 адреса, что вызывает считывание первой микрокоманды из узла 81 памяти микрокоманд и записи ее на регистр 82 микрокоманды. Эта микрокоманда устанавл1шает регистр 80 занятости устройства по длинной операции в состояние единица, что открывает элемент И 76, обеспечивая подключение к второму коммутатору 75 коммутатора 73 адреса, а адресацию следующей микрокоманды операции. Младшие разряды адреса определяют выполнение условных переходов в ходе выполнения операции и формируются на - коммутаторе 73 адреса: младшие разряды адреса 90.3 с выхода регистра 82 микрокоманд изменяются в соответствии с алгоритмом выполнения операции под воздействием условий ветвления 3539, поступающий с других блоков устройства, входного запросного слова 24 устройства, и состояния регистров 83, 88 и 89, счетчиков 86 и 87 и кода 90,2 типа ветвления.
Такой процесс адресации микрокоманд может быть нарушен микроприказом 90.4 РАМК: РАВ, который подключает к регистру 78 адреса через коммутатор 75 адреса выход регистра 79 адреса возврата. Это позволяет, записав в одной из микрокоманд по микроприказу 90,5 адрес возврата 90.6 на регистр 79 адреса возврата, использовать его в спедуто- щих микрокомандах, например, для выхода из подпрограмм.
Блок 8 суммирования работает следующим образом.
Коммутаторы53 и 54 под управлением соответственно кода 32 номера байта первого операнда и кода 33 номера байта второго операнда выбирают один из возьми байтов соответственно с выхода регистра 1 первого слагаемого и выхода регистра 2 второго слагаемого. Коммутатор 55 под управлением микроприказов 34.8.1 выбирает для дальнейшей обработки либо байт с выхода коммутатора 53, либо байт с выхода регистра 5 непосредственного 50 операнда (вход 42), либо первую константу 29 с выхода блока 13 управления. Аналогично коммутатор 56 под управлением микроприказов 34.8,2 выбирает либо код 32 номера байта пер30
вого операнда, либо байт с выхода коммутатора 54, либо байт с выхода
регистра 5 непосредственного операнда, либо первую константу 29 с выхода блока 13 управления. Коммутаторы 57 и 58 под управлением микроприказов 34,8.3 и 34.8.4 соответственно выполняют все возможные пересылки старших четырех разрядов 70.1 и младших четырех разрядов 70,2 байта, сформированного на коммутаторе 55.
Аналогично коммутаторы 59 .и 60 под управлением микроприказов 34.8.5 и 34.8.6 соответственно вьтолняют все возможные пересылки старших четырех разрядов 71.1 и младших четырех разрядов 71.2 байта, сформированного на коммутаторе 56.
Корректирующие сумматоры 61 и 62 при наличии микроприказа 34.8.7 ДСЛ вьшолняют сложение информации с выходов соответственно коммутаторов 57 и 58 с кодом 0110., а при отсутст- ВИИ этого микроприказа не изменяют данную информацию.
Сумматоры 63 и 64 производят образование соответственно старших четырех разрядов и младших четьфех разрядов байтов с выходов корректи- рующих сумматоров 61 и 62 (первый операнд) и коммутаторов 59 и 60 (второй операнд) под управлением микроприказов 34.8.8, задающих вьтолня- емую функцию. Перенос с выхода сумма- тора 64 поступает на соответствующий вход первого сумматора. 63, перенос с вькода которого запоминается на регистре 68 переноса и при наличии. в следующей микрокоманде микроприказа 34.8о9 СМБ(7) через элемент И 69 поступает на соответствующий вход сумматора 64.
Корректирующие сумматоры 65 и 66 при наличии микродтриказа 34.8.7 ДСЛ корректируют сумму с выходов сумматоров 63 и 64 в соответствии с переносами на выходе этих сумматоров.
Регистр 1 первого слагаемого за
пис ьтает восемь байтов с выхода коммутатора 9, причем семь старших байтов записываются на семь регистров старших байтов, а младний (восьмой) байт - на два регистра младших байта таким образом, что старшие четыре разряда этого байта записьгоаются на первый, а младшие четыре .разряда - на второй регистр младшего байта.
Семь байтов с выходов регистров старших байтов, а также старшие че- тыре разряда восьмого подаются на выход регистра 1 первого слагаемого без изменений. Четыре разряда с выхо
5 0
5 о г
о
5
0
5
да второго регистра младшего байта блокируется при наличии сигнала на выходе 34.1 блока 13 управления. Регистр 2 второго слагаемого работает аналогичным образом.
Блок 16 анализа работает следующим .образом.
Каждый из восьми элементов ИЛИ 43 выполняет логическое сложение восьми разрядов соответствующего байта с выхода регистра 3 результата. Элементы И 44 и запрета 45 выполняют логическое умножение полученных величин на значения микроприказов 34.14 и их инверсию.
Микроприказы 34.14 формируются в блоке 13 управления в соответствии с кодом 24.4 длины первого операнда в виде двух возьмиразрядных групп сигналов РАН1(0/7) и РАН2(0/7), причем в одном такте формируется только одна из этих групп сигналов.
I ,
Сигналы с выходов первого и второ.- го элементов ИЛИ 46 проходят через соответственно первый и второй элементы ИЛИ 47, первый и второй эле- ментъ 48 запрета, при отсутствии мнкроприказов 34.14.9 ТСМ1,, и записываются на соответственно первый регистр 49 суммы и второй регистр 50 суммы,причем, если первый и второй регистры суммы устанавливаются в состояние единица, то за счет образных связей с выхода первого регистра 49 суммь на вход первого элемента ИЛИ 47 и с выхода второгорегистра 50 суммы на вход второго элемента . ИЛИ 47, это состояние сохраняется до прихода микроприказа 34.14.9 ТСМ1,, который переводит первый и второй регистры- суммы в состояние
ноль . Таким образом, первый регистр 49 суммы состоянием единица отмечает событие байты с выхода регистра 3 результата, не принадлежащие полю первого операнда (результата), не равны нулю, а второй регистр 50 суммы - событие байты с выхода регистра 3 результата, принадлежащие полю первого операнда (результата), не равны нулю.
ПерВ1ЫЙ регистр 51 переноса фик- сирует перенос с выхода переноса пара,гшельного сумматора 6, а второй регистр 52 переноса перезапоминает этот перенос для использования в следующем такте.
Сдвнгатель 7 выполняет сдвиг информации с выхода коммутатора 1 1 на четыре разряда вправо с замещением старших четырех разрядов четырехразрядной константой 3Q или сдвиг влево с замещением четырех младших разря дов младшими четырьмя разрядами с выхода регистра 5 непосредственног о, операнда, пропущенных через элемент И 21.Кольцевой сдвигатель 15 выполняет циклический сдвиг на любое количество байтов влево за один машинный такт.
Арифметико-логическое устройство для обработки десятичных данных работает следующим образом.
Любая арифметическая операция над двоично-десятичными данными на- чинается с процедуры установки операндов к целочисленной границе двойного слова СПЦГ) .
Эта процедура начинается сразу после запуска устройства на выполнение операции и приема на входной регистр 17 первого двойного слова второго операнда, содержащего младши байты этого операнда. Блок 13 управления формирует код 34.4 сдвига, который остается постоянным на- время установки второго операнда и определяется кодом 24.3 номера младшего байта второго операнда. Первая микрокоманда установки записывает на второй буферный регистр 19 информацию с выхода, кольцевого сдвигателя 15. Если второй операнд расположен водном двойном слове,то следующая микрокоманда зaпиJпeт установленный второй операнд нарегист 2второго слагаемого В противном случае, после приема второго двойного слова второго операнда на входной регистр Т7, в старшие байты второго буферного регистра 19 по микроприказам 34.13.15-34.13.22 М22 (0/7) записывается информация с выхода кольцевого сдвигателя 15. Следующая микрокоманда переписывает восемь младших байтов второго операнда на регистр 2 второго слагаемого и по микроприказам 34.13.15-34.13.22 М21(0/7) записывает в младшие байт второго буферного регистра 19 информацию с выхода кольцевого сдвигателя 15. После этого, если второй операнд размещен в двух двойных, словах, микропрограмма переходит к установке первого операнда. В противном случае после приема в устройство третьего
to
15
0
5
0
5
0
5
0
5
(последнего) двойного слова второго операнда на входной регистр 17 в старшие байты второго буферного регистра 19 по микроприказам 34.13.15- -34.13.22 М22(0/7) записывается информация с выхода кольцевого сдвигателя 15, после чего микропрограмма переходит к установке первого операнда.
После приема первого двойного слова первого операнда на входной регистр 17 производится запись по микроприказам 34.13.7-34.13.14 М11(0/7) в младшие байты первого буферного регистра 18 информации с выхода кольцевого сдвигателя 15. Если первый операнд размещен в одном . двойном слове, то следующая микрокоманда переписывает установленный первый операнд на регистр 1 первого слагаемого, а на регистр 78 адреса записывает, содержимое регистра 79 адреса возврата, содержащего адрес первой микрокоманды, которая выполняется после процедуры установки, т.е. выполняет переход по адресу возврата. Если же первый операнд расположен более, чем в одном двойном слове, то после приема на входной регистр 17 второго двойного слова первого операнда в старшие байты первого буферного регистра по микроприказам 34. 13-7-34. 13 . 14 М12(0/7) записывается информация с выхода кольцевого сдвигателя.
Следующая микрокоманда переписывает младшие восемь байтов первого операнда на регистр 1 первого слагаемого и по микроприказам 34.13.7-34.13.14 М11(0/7) записывает в младшие байты первого буферного регистра 18 инфор-. мацию с выхода кольцевого сдвигателя 15. Если первый операнд размещен в двух двойных словах, то последняя микрокоманда установки выполнит переход по адресу вознра-та, в противном случае, после приема третьего (последнего) двойного слова первого операнда на входной регистр 17, в старшие байты первого буферного регистра 18 по микроприказам 34.13.7-34.13.14 М12(0/7) записывается информация с выхода кольцевого сдвигателя 15, после чего производится переход по адресу возврата. Таким образом, после процедуры установки операнды размещаются на регистрах устройства следующим образом: мпадшие восемь байтов
первого операнда - на регистре 1 первого слагаемого, а младшие восемь бантов второго операнда - на регистре 2 второго слагаемого, причем младшие четыре разряда этих операндов записаны в младших разрядах (60/63) этих регистров;старшие восемь байтов пер- вого операнда - на первом буферном регистре 18, а старшие восемь байтов второго операнда - на втором буферном регистре 19.
Поскольку двойные слова операндов поступают в устройстве от процессора команд через такт, то процедура установки операндов практически совмещена по времени с приемом операндов в устройство.
Операция сложения десятичных данных (фиг. 6) начинается в устройстве с установки на рег истре 79 адреса возврата адреса АДР1 первой по,сле процедуры установки ПЦГ ьикрокоманды, после чего выполняется процедура ПЦГ.
Первая после установки ПЦГ микрокоманда устанавливает счетчик 84 байтов первого операнда в состояния ill, что вызывает появление на выходе коммутатора 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. 1(0/7) устанавливаются первый и второй регистры.49 и 50 суммы, а первый регистр 51 переноса фиксирует возникающий перенос.
В следующем такте младшие восемь байтов результата в регистре 3 результата переписьгоаются по микроприказу 34.3.3 на входной регистр 17, старшие восемь байтов первого и второго операндов переписываются соответственно
с первого буферного регистра 18 на регист р 1 первого слагаемого и со второго буферного регистра 19 на регистр 2 второго слагаемого, после.
чего производится сложение этих байтов по микроприказу 34,6.2 с учетом переноса от предыдущего сложения, зафиксированного на втором регистре 52 переноса. При этом по микроприказам 34,14.1-34,14,8 РАН2(0/7) устанавливаются первый и второй регистры 49 и 50 суммы.
Состояние единица второго регистра 52 переносов или первого регистра 49 суммы означает переполнение в результате выполнения сложения, поэтому в этом случае в выходном запросном слове 28 устройства устанавливается код условия, равный трем, при
этом на регистре 67 результата блока 8 формируется младший байт результата, старшие четыре разряда которого выбираются из старших четырех разрядов младшего байта суммы, а младшие четыре разряда - из кода 29 константы.
Таким образом, поскольку код 29 константы задает знак результата плюс, то, если регистр 83 знака
находится в состоянии ноль, то на регистр 1 первого слагаемого в младший байт записывается байт результата с вькода 33 блока 8, содержимое регистра 1 первого слагаемого переписывается на выходной регистр 4 и выполняется процедура установки результата к реальной границе (установка ПРГ). Если же регистр 83 зна- . ка находится в состоянии едини- ца т.е. результат операции - число отрицательное, то на регистре 67 результата блока 8 формируется младщий байт результата со знаком минус, который в следующем такте записьгоает- ся на регистр 1 первого слагаемого, после чего содержимое этого регистра переписывается на выходной регистр 4 и выполняется процедура установки ПРГ.
Если переполнение не зафнксировано, то после формирования на регистре 67 результата блока 8 младшего байта результата с кодом знака плюс проверяется состояние второго регистра 50 суммы.Если он находится-в
состоянии ноль, т.е. результат равен нулю, то код условия в выходном запросном слове 28 устанавливается равным нулю, на регистр 1 пер
11
вого слагаемого записывается младший байт результата, и содержимое этого регистра переписывается на выходной регистр 4, после чего выполняется процедура установки ПРГ.
Если результат не равен нулю (второй регистр 50 суммы находится в сосрегистртоянии единица) то проверяется сос83 знака. Если он находится в
тояние регистра oJ знака.
состоянии ноль, то результат сложения положительных чисел больше нуля, код условия в выходном запросном слове 28 устанавливается равным двум, младший байт результата переписывается с выхода 14 блока 8 сумматора на регистр 1 первого слагаемого J после чего содержимое этого регистра переписывается на выходной регистр 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, при этом по микроприка244660
12
10
t5
20
30
35
40,
45
50
55
зам 34.14.1-34.Г4.8 РАН1(0/7) уста- , навливаются первый и второй регистры 49 и 50 суммы, а первьй регистр 51 переноса фиксирует возникающий перенос .В .следующем такте восемь младших байтов разности с резистра 3 результата записываются на входной регистр 17., откуда в конце такта записываются на первый и второй буферные регистры 18 и 19. В этом же такте старшие восемь байтов операндов переписываются соответственно с первого буферного регистра 18 на регистр 1 первого слагаемого и со -второго буферного регистра 19 на регистр 2 второго слагаемого, пос- . ле чего по микроприказу 34.6.Д. производится вычитание старших восьми байтов второго операнда из старших восьми байтов первого операнда на па раллельном сумматоре 6 с учетом переноса от предыдущего вычитания, зафиксированного на втором регистре 52 переноса. При этом по микроприказам 25 34,14.1-34.14.8 РАН2(0/7) устанавливаются первый и второй регистры 49 и 50 суммы. , ,
Состояние единица второго регистра 52 переноса и состояние ноль рервого регистра 49 суммы означает, что результат получен в прямом коде (параллельный сумматор 6 выполняет вычитание сложением первого операнда в прямом коде и второго операнда в дополнительном коде,по.этому при вычитании из большего числа меньшего возникает перенос, а не принадлежащие результату байты обращаются в ноль), т.е. первый операнд по модулю больше второго и знак разности совпадает со знаком первого операнда. Поэтому на регист- стре 67 результата блока .8 формируется младший байт результата с кодом знака плюс и проверяется состояние второго регистра 50 суммы. Если оно равно нулю, то результат операции равен нулю и следующая микрокоманда записывает младший байт результата на регистр 1 первого слагаемого, устанавливает код уело- ВИЯ в выходном запросном слове 28 равный нулю, переписывает содержимое этого регистра на выходной регистр 4, после чего выполняется процедура установки ПРГ.
Если же второй регистр 52 суммы находится в состоянии единица, то анализируется регистр 83 знака. Если он находится в состоянии ноль,
15
20
то знак ненулевого результата- плюс и последняя микрокоманда записывает на регистр 1 первого слагаемого младший байт результата с регистра 67 результата блока 8, код условия , в выходном запросном слове 28 устанавливается равным двум, на выходной регистр 4 записывается содержимое регистра 1 первого слагаемого, после чего выполняется процедура установ- JQ ки ПРГ. Если регистр 83 знака находится в состоянии единица, то на регистре 67 блока 8 формируется младший байт результата с кодом знака минус, который в следующем такте переписывается на регистр 1 первого слагаемого, после чего содержимое этого регистра переписывается на выходной регистр 4, код условия в выходном запросном слове 28 устанавливается равным единице и выполняется процедура установки ПРГ.л
Если после второго такта вычитания второй регистр 52 переноса находится в состоянии ноль или первый регистр 49 суммы находится в состоянии единица, то это означает, что результат вычитания получен в дополнительном двоично-десятичном кЪде. Этот результат получается в случае, если первый операнд по модулю меньше второго операнда, Тогда для получения истинного результата необходимо вычесть полученный результат из нуля. Для этого, сначала производится . первого и второго регистров 49 и 50 суммы по микроприказу 34.14.9 ТСМ1,. В следующем тарте на параллельном сумматоре 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 55 вычитаются на параллельном сумматоре 6 из нуля с учетом переноса от предыдущего вычитания, зафиксированного
12446601
на втором регистре 52 переноса. При
этом по микроприказам 34.14.1-34.14.8 РАН2(0/7) производится установка первого и второго регистров 49 и 50 суммы. Поскольку нулевого результата в дополнительном коде не существует, код условия и знак результата определяются, исходя из знака первого операнда (состояние регистра 83 знака) и наличия переполнения. Если регистр 83 знака находится в состоянии
ноль
, то на регистре 6/ результата формируются младший байт результата со знаком минус, который в следующем такте записывается на регистр 1 первого слагаемого, после чего содержимое этого регистра переписыва- ется на выходной регистр 4, и проверяется состояние первого регистра 49 cyiMMbi. Если он находится в состоянии единица (случай переполнения), то код условия устанавливается равным трем. В противном случае код условия устанавливается равным единице. После 25 этого выполняется процедура установки ПРГ.
ЕС.ГШ регистр 83 знака находится в состоянии единица, то на регистре 67 результатаформируется младший байт результата со знаком плюс,который в следующем такте записывается на регистр 1 первого слагаемого,после чего содержинре этого регистра переписывается на выходной регистр 4. При этом, если первый регистр 49 суммы находится в состоянии единица
случай переполнения), то устанавливается код условия, равный трем. В про- . тивном случае, код условия устанавливается рвным двум, после чего выполняется процедура установки ПРГ, завершающая операцию. Процедура установки резул1,тата к реальной . границе .в оперативной памяти (установка ПРГ) завершает ариф30
35
40
45 U 50
метические операции над десятичными данными.
В первом такте установки ПРГ формируется первое двойное слово результата из восьми младших .байтов результата, записанных на входной регистр 17. Это выполняется путем записи старших байтов с выхода кольцевого сдвигателя 15 по микроприказам 34.13.7-34.13.1.4 М11(0/7) на первый буферный регистр 18. Код 34,4 сдвига формируется блоком 13 управления. Этот код сдвига сохраняется пос15
20
, JQ
55
ноль
, то на регистре 6/ результата формируются младший байт результата со знаком минус, который в следующем такте записывается на регистр 1 первого слагаемого, после чего содержимое этого регистра переписыва- ется на выходной регистр 4, и проверяется состояние первого регистра 49 cyiMMbi. Если он находится в состоянии единица (случай переполнения), то код условия устанавливается равным трем. В противном случае код условия устанавливается равным единице. После 25 этого выполняется процедура установки ПРГ.
ЕС.ГШ регистр 83 знака находится в состоянии единица, то на регистре 67 результатаформируется младший байт результата со знаком плюс,который в следующем такте записывается на регистр 1 первого слагаемого,после чего содержинре этого регистра переписывается на выходной регистр 4. При этом, если первый регистр 49 суммы находится в состоянии единица
случай переполнения), то устанавливается код условия, равный трем. В про- . тивном случае, код условия устанавливается рвным двум, после чего выполняется процедура установки ПРГ, завершающая операцию. Процедура установки резул1,тата к реальной . границе .в оперативной памяти (установка ПРГ) завершает ариф30
35
40
45 50
метические операции над десятичными данными.
В первом такте установки ПРГ формируется первое двойное слово результата из восьми младших .байтов результата, записанных на входной регистр 17. Это выполняется путем записи старших байтов с выхода кольцевого сдвигателя 15 по микроприказам 34.13.7-34.13.1.4 М11(0/7) на первый буферный регистр 18. Код 34,4 сдвига формируется блоком 13 управления. Этот код сдвига сохраняется постоянным-до конца процедуры установки ПРГ.
В этом же такте восемь младших байто результата переписываются с первого буферного регистра 18 на регистр 1 первого слагаемого, откуда - на .выходной регистр А.
Ес:ти результат расположен в одном двойном слове (количество двойных слов результата и первого операнда совпадает, поскольку результат замещает первый операнд), то двойное слово результата переписывается на регистр 1 первого слагаемого, откуг да - на выходной регистр 4, а на управляющий выход 28 запросного слов устройства по- микроприказу ПЗП: 1 вьщается запросное слово на запись двойного слова результата с информационного выхода 26 устройства.
Если результат расположен в двух или трех двойных словах, то младшее .двойное слово результата переписывает на регистр 1 первого слагаемого, и на первый буферньй регистр 18 по микроприказам 34.13.7-34.13.14 М12(0/7) записываются младшие байты с выхода кольцеваго сдвигателя 15. В следующем такте восемь старших байтов результата записываются на входной регистр 17, после чего по микроприказам 34.13.7-34.13.14 М11(0/7) старшие байты с выхода кольцевого сдвигателя записываются на первый буферный регистр 18. В этом же такте первое двойное слово результата записывается на выходной регистр 4 и вьщается запрос в процессор команд на запись результата.
Если результат расположен в двух двойных словах, то после выдачи первого двойного слова результата вто
рое дво иное слово результата переписывается с первого буферного регистра, 18 через регистр 1 первого слагаемого на выходной регистр 4 и выдается на информацион ный выход 26 устройства по. запросному слову на управляющем выходе 28 устройства.
Если результат расположен в трех двойных словах, то второе двойное .слово результата записывается на регистр 1 первого слагаемого, по микроприказам 34.13.7-34.13,14 М12(0/7) в младшие байты первого буферного регистра 18 записывается информация с выхода кольцевого сдвигателя 15.
После того, как перво е двойное слово результата вьщано,, второе двойное слово результата записывается на
входной регистр 4 и выдается на информационный выход 26 устройства по запросному слову на управляющем выходе 28 устройства. После выдачи второго двойного слова резуль.тата
третье двойное слово результата переписывается с первого буферного регистра 18 через регистр 1 первого слагаемого на выходной регистр 4, откуда выдается на информационный выход 26
устройства по запросному слову на управляющем выходе 28 устройства. После вьщачи всех двойных слов результата выполнение операции в устройстве прекращается и регистр 80 занятости устройства по длинной операции устанавливается в состояние ноль.
Логические операции над полями переменной длины выполняются в ариф- матическо-логическом устройстве с
п
использованием блока 8 по алгоритмам, аналогичным алгоритмам выполнения таких операций в известном устройстве.
Управление приемом в сдвигатель 7
Управление параллельным сумматором 6
34.7
Управление сдвигателем 7
34.8
Управление блоком 8 суммирования
СДВ(60/63): РФС4/7)РР: РС1+РС2
РР: РС1+РС2+ТП РР: РС1-РС2
РР: РС1-РС2-ТП
. РР: 0-РС2
РР: 0-РС2-ТП Сдвиг О
. Сдвиг влево
. Сдвиг вправо
. СБ11: КОММ1 СБ11: РНОП СБ11: СО N S Т
СБ12: СЧБ1 СБ12: КОММ2 СБ12: РНОП СБ12: СО N S Т
СБ21СО/3)(0/3) СБ21 (0/3)-: СБ11(4/7)
СБ21(4/7)(4/7) СБ21(4/7)(0/3)
СБ22(0/3): СБ12{0/3)
СБ22(0/3)(4/7)
СБ22(4/7)(4/7) СБ22(4/7)(0/3)
34.14.9
ТСМ1,)
211
Формула изобретения
1.Арифметико-логическое устройств для обработки десятичных данных, содержащее пять коммутаторов,, регистр первого слагаемого, регистр второго слагаемого, регистр результата, выходной регистр непосредственного операндаэ параллельный сумматор, блок суммирования, сдвигатб Ль, входной регистр и блок управления, содержащий коммутатор адреса, узел памяти первый коммутатор, регистр микрокоманд, регистр адреса, счетчик байтов первого операнда, счетчик байтов второго операнда, счетчик длины первого операнда, счетчик длины второго операнда, регистр номера байта результата, элемент И, регистр номера байта второ.го операнда, а также блок анализа, содержащий первую группу элементов ИЛИ, вторую группу элементов РШИ, первьм регистр сук-мы, первы р згистр переноса, причем в блоке управления выход регистра адреса соединен адресным входом узла памяти, выход которого соединен с входом регистра микрокоманд, выходы разрядов первого операционного поля которого соединены соответственно со счетными входами счетчика байтов первого операнда, счетчика байтов второго операнда, счетчика длины первого операнда, счетчика длины второго операнда, выходы счетчика байтов первого операнда и счетчика байтов второго операнда соединены соответственно с входами регистра номера байта результата и регистра номера байта второго операнда выходы поля адреса регистра м:икрокоман соединены соответственно с управляющими входами коммутатора адреса, выходы регистров номера байта результата и номера байта второго операнда, вькоды счетчиков длины первого и второго операндов соединены соответственно с информационными входами коммутатора адреса, выход которого соединен с первым входом элемента И, выход поля адреса регистра микрокоманд соединен с первым информационным входом первого коммутатора, причем в устройстве выходы первого и второго коммутаторов соединены соответственно с информационными входами регистров первого и второго слагаемых, выходы которых соединены .соответственно с первым и вторым информационными входами параллельного сумматора, выход суммы которого
4660 . 22
соединен с информационнь1м входом
регистра результата,, выходы регистров первого и второго слагаемого соединены соответственно с первым и вторым
,. информационными входами блока сумми- :Р
рования, выход результата которого
соединен с первыми информационными входами первого и второго коммута- /горов, выходы регистров первого и втоQ рого слагаемых соединены сооответствен- но с первым и вторым информационными входами третьего коммутатора, выход которого соединен с .информационным входом сдвигателя, выход которого со,j единен с информационны; входом выходного регистра, выход которого является информационным выходом устройства, и соединен с вторым информационным входом первого коммутатора,
2Q третий информационный вход которого соедрснен с выходом регистра резуль.та- та, первый и второй информационные входы устройства соединены соответственно с первыми информационными
25 входами четвертого и пятого коммутаторов, йыходы которых соединены соответственно с информационными входами регистра непосредственного операнда, и входного регистра, второй
.. информационный вход четвертого коммутатора соединен с выходом резуль- тата блока суммирования, второй и .третий информационные входы пятого коммутатора соединены соответственно с выходом выходного регистр.а и выходом регистра результата, раз- рядов регистра результата соединены соответственно с входами элементов ИЛИ первой группы блока анализа, выход переноса параллельного сумматора соединен с входом первого регистра переноса блока анализа, выходы .первого и второго поля констант регистра микрокоманд блока управления соединены соответственно с пер- вым управляющем входом блока суммирования и с входом разрядо1з, сдвигаемых при правом сдвиге сдвигателя, выход1э1 счетчика байтов первого операнда и счетчика байтов второго операнда блока управления соединены соответственно с вторым и третьим уп- равляющкми входами блока суммирования, выходы результата и переноса которого, выход первого регистра
55 суммы блока анализа соединены соответственно с информационными входами .коммутатора адреса блока управления, выходы операционных полей., кроме
35
40
45
50
первого, регистра микрокоманд блока управления соединены соответственно с входом приема регистра первого слагаемого, с входом приема регистра второго слагаемого, управляющими входами пятого коммутатора, входом сложения-вычитания параллельного сумматора, входом направления сдвига сдви гателя , четвертым управляющим входом блока суммирования, управляющими вхо- дами первого коммутатора, управляющими входами второго коммутатора, управляющими входами третьего коммутатора, управляющими входами четвертого коммутатора и входами приема входного регист- ра, регистра результата, первогорегистра суммы блока анализа, блока суммирования, выходного регистра, регист- ,ра непосредственного операнда, о т- л и ч ающе е с я тем, что, с целью повьшения быстродействия, оно содержит два,буферных регистра, блок элементов И, кольцевой сдвигатель, блок управления дополнительно содержит второй коммутатор, регистр зна- . ка, регистр адреса возврата, регистр з.анятости, а также блок анализа дополнительно содержит второй регистр суммы, второй регистр переноса, группу элементов И, две группы элементов запре та, третью группу элементов ИЛИ, приче в блоке управления выход регистра знака соединен с информационным входом комму- |татора адреса, выход первого комму- татора и выход элемента И соединены .с первым информационным входом вто- ро го коммутатора, второй информационный вход и выход которого соединены соответственно с выходом регистра адреса возврата и входом регистра адреса, выход поля конца операции регистра микрокоманд соединен с входом регистра занятости, выход которого соединен с управляющим входом первого коммутатора и вторым входом элемента И, выходы первого операционного поля регистра микрокоманд соединены с управляющим входом второго коммутатора, входом приема регистра адреса возврата, входом регистра знака, выход адресного поля-регистра микрокоманд соединен с информационным входом регистра адреса возврата, в блоке анализа выходы элемента ИЛИ первой группы соединены с первыми входами соответствующих элементов И группы и с информационными входами . соответствующих элементов запрета группы, выходы которых соединены с
Q 5 0 5
5
0
соответствующими входами элементов ИЛИ второй группы, которых соединены с первыми входами соответствующих элементов ИЛИ третьей группы, выходы которых соединены с информационными входами элементов запрета второй группы, выходы которых соединены с информационными входами первого и второго регистров суммы соответственно, выходы которых соединены с вторьми входами соответствующих элементов ИЛИ третьей группы, вход приема первого регистра суммы со единен с вводом приема второго регистра суммы, выход первого ре- ристра переноса соединен с входом второго регистра переноса, причем в устройстве выход входного регистра соединен с информационным входом кольцевого сдвигателя, выход которого соединен с информационными входами первого и второго буферных регистров, выходы которых соединены соответственно с четвертым информационным входом первого коммутатора и вторым информационным входом второго коммутатора, выход регистра непосредственного операнда соединен с информационным входом блока элементов И и с . третьим информационным входом блока суммирования, выход блока элементов И соединен ci входом разрядов сдвигаемых при сдвиге влево сдвигателя, выход второго регистра переноса блока анализа соединен с входом переноса параллельного сумматора и с информационным входом коммутатора адреса блока управления, вьпсод второго ,, регистра суммы блока анализа соединен с информационным входом коммутатора адреса блока управления, выход регистра :номера байта результата которого соединен с входами разрешения приема байтов регистров первого и второго операндов, вход кода сдвига кольцеврго сдвигателя, управляющий вход блока элементов И, входы разре11{ения приема байтов первого и второго буферных регистров, вторые входы элементов И группы, управляющие входы элементов запрета первой и второй групп блока анализа соединены соответственно с выходами опе
рационных полей регистра микрокоманд блока управления, выход регистра занятости и поля запроса регистра микрокоманд которого являются выходами занятости и запросного слова устройства, вход запросного слова которого соединен с информационным
25
входом коммутатора адреса, вторым информационным входом первого коммутатора, информационными входами счетчикс в байтов первого операнда байтон второго операнда, длины первого операнда и длины второго операнда блока управления.
2. Устройство по п. 1, о т л и- чающее ся тем, что блок суммирования содержит восемь коммутаторов, четыре корректирующих сумматора два сумматора, регистр результата, регистр переноса, элемент И, причем первый и второй информационные входы блпка суммирования соединены соответственно с информационньгми входами первого и второго коммутаторов, выход первого коммутатора, третий информационный и первый управляющий входы блока суммирования соединены соответственно с первым, вторым и третьим информационньми входами третьего коммутатора, второй управляющий вход блока суммирования соедине с управляющим входом первого коммутатора и первым информационн ым входо четвертого коммутатора, выход второг коммутатора, третий информационный и первый управляющий входы блока суммирования соединены соответственно с вторымэ третьим и летвертьп информационными входами четвертого коммутатора ,. выходы старших и младших разрядов третьего коммутатора соединены соответственно с первым и вторым информационными входами пятого коммутатора и вторым и первым информа- ционньми входами шестого ком гутатора выходы которых соединены соответст- венно с информационными входами первого и второго корректируюп их сумматоров, выходы которых соединены со60 .26
ответственно с; первыми информационными входами первого и второго сумматоров, выходы которых соединены соответственно с информационными входами третьего и четвертого корректи- руюпцгк cyNMaTopoB, выходы которых соединены с информационньм входом регистра результата, выход которого является выходом результата блока
суммирования, вход приема которого соединен с входами приема регистров результата и переноса, выход которого является выходом переноса блока суммирования и соединен с первым вхо-;
дом элемента И, выход которого соединен с входом переноса второго сумматора, выход переноса которого соединен с входами переноса четвертот о корректирующего сумматора и первого
сум1,:атора, выход переноса которого соединен с информационным входом. .регистра переноса и входом переноса .третьего .корре ктирующего сумматора, выходы старшшг и младших разрядов четвертого коммутатора соединены соответственно с первым и в тррым информационными входами седьмого коммутатора и вторым и первьм информационными входами восьмого коммутатора, выходы которых соедине .ны соответственно с вторыми информационными входами первого и второго сумматоров, управляющий вход второго коммутатЬра соединен с третьим упра,в ляющ:им входом блока суммирования.
управляющие входы коммутаторов с
третьего по восьмой, входы разрешения корректирующих сумматоров с первого по четвертый, входы сложения- вычитания первого и второго суммато- ров, второй вход элемента И соеди-, иены соответственно с разрядами четвертого управляющего входа блока суммирования.
35
Фа г. 2.
0 4/ 42 29 33
32
3t
XJJ.l,
Фиг.
2i,iS73839
Редактор Л. Повхан
Составитель А. Клюев Техред М.Ходанич
Заказ 3919/52
Тираж 671
Подписное
ВНИИПИ Государственного комитета СССР
по делам изобретений и открытий 113035, Москва, Ж-35, Раушская наб., д. 4/5
Производственно-полиграфическое предприятие, г. Ужгород, ул. Про€ .ктная, 4
Корректор Г. Решетник
название | год | авторы | номер документа |
---|---|---|---|
Устройство центрального управления процессора | 1983 |
|
SU1136177A1 |
Устройство для обработки данных | 1987 |
|
SU1513443A1 |
Устройство буферизации команд процессора | 1983 |
|
SU1092506A1 |
Арифметическое устройство | 1978 |
|
SU687982A1 |
Процессор с микропрограммным управлением | 1983 |
|
SU1149273A1 |
Устройство для сопряжения памяти с процессором | 1982 |
|
SU1136176A1 |
Вычислительное устройство | 1988 |
|
SU1545215A1 |
Процессор | 1986 |
|
SU1332328A1 |
Процессор с совмещением операций | 1982 |
|
SU1138805A1 |
Устройство для умножения | 1987 |
|
SU1495785A1 |
Изобретение относится к вьгчис- лительной технике и может быть использовано для работы в составе мультипроцессора быстродействующей элект ронно-вычислительной машины. Устройство предназначено для выполнения арифметических операций над десятичными операндами и- логических операций над полями переменной длины параллельно с другими операциями при мультипроцессорной организации ЭВМ. Цель изобретения - повьшение быстродействия. Поставленная цель достигнута с помощью введения в арифметико-логи- ческое устройство, содержащее блок управления, блок распределения синхросигналов, четыре селектора, регистр первого слагаемого, регистр второго слагаемого, блок сумматора, параллельный сумматор, регистр результата, сдвигатель, выходной регистр и ре-, гистр непосредственного операнда блока анализа результата, двух буферных регистров, пятого селектора, входного регистра, кольцевого сдвигателя и элемента И, а также оригинальной организацией связей между блоками устройства. 1 з.п. ф-лы, 8 ил. с (Л ю 4 4 а О)
Патент США № 3462744, кл | |||
Способ отопления гретым воздухом | 1922 |
|
SU340A1 |
Приспособление к индикатору для определения момента вспышки в двигателях | 1925 |
|
SU1969A1 |
Очаг для массовой варки пищи, выпечки хлеба и кипячения воды | 1921 |
|
SU4A1 |
Насос | 1917 |
|
SU13A1 |
Авторы
Даты
1986-07-15—Публикация
1984-10-19—Подача