Арифметическое устройство
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и может быть использовано при построении быстродействующих процессоров . Цель изобретения - сокращение оборудования и повышение быстродействия. 5 Арифметическое устройство содержйт регистры первого и второго операндов 1 и 2, первый и второй регистры 4 и 5, основной сумматор 15. блок инверсии 16, регистр 20 основного сумматора, блок формирования кода нормализации 21, блок маски 23 , блок байтового суммирования 13. Для достижения цели дополнительно введены третий регистр 3, третий и четвертый коммутаторы 6 и 7, коммутатор кода 11, регистр межтетрадных персоналов 19, коммутатор 12 входов байтно-тетрадного сдвигателя, байтно-тетрадный с двигатель 16, регистр 22 байтнотетрадного сдвигателя. дополнительный сумматор 14, коммутаторы 8 и 9 первого и второго входов дополнительного сумматора , первый и второй дополнительные регистры 17 и 18. блок выработки сигналов запрета 24. 8 табл., 1 з.п. ф-льи 17 ил. 6
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (я)з G 06 F 7/52
ГОСУДАРСТВЕННЫЙ КОМИТЕТ
llO ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ
ПРИ ГКНТ СССР I >A4g
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Ф
ЮВ
МФ
Ъ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
1 (21) 4890818/24 (22) 19.11.90 (46) 15.07.92. Бюл. М 26 (71) Научно-исследовательский институт электронных вычислительнйх машин (72) Л.Ф.Аскерко, В.М.Ленкова, И.Н.Летковская, И,И.Лиокумович, С.Г.Маймескул и
Е.С.Ремороеа (53) 681.325(088.8) . (56).Авторское свидетельство СССР
Я 687982, кл. G 06 F 7/50, 1982.
Модуль электронной обработки
Е 13,098.0QOTO. Техническое описание, (54) АРИФМЕТИЧЕСКОЕ УСТРОЙСТВО (57) Изобретение относится к вычислительной технике и может быть использовано при построении быстродействующих процессоров. Цель изобретения — сокращение оборудования и повышение быстродействия.
25,, Ж„, 1748153 А1
Арифметическое устройство содержйт реги- .стры первого и второго операндов 1 и 2, первый и второй регистры 4 и 5, основной сумматор 15, блок инверсии 16; регистр 20 основного сумматора, блок формйрования . .кода нормализации 21, блок маски 23, блок байтового суммирования 13. Для достижения цели дополнительно введейы третий регистр 3, третий и четвертый коммутаторы 6 и 7, коммутатор кода 11, регистр межтетрадиых персоналов 19, коммутатор 12 входов байтно-тетрадного сдвигателя, байтно-тетрадный сдвигатель 16, регистр 22 байтнотетрадного сдвигателя, дрполнительный: сумматор 14, коммутаторы 8 и 9 nepaoro u второго входов дополнительного сумматора, первый и второй дополнйтельные регистры 17 и 18, блок выработки сигналов запрета 24. 8 табл., 1 з.п, ф-лы 17 ил.
1748153
Изобретение относится к вычислитель-. ной технике и может быть использовано в процессорах универсальных цифровых машин высокого быстродействия.
Цель изобретения — повышение быстродействия и сокращение аппаратурных затрат.
На фиг. 1 изображена структурная схема.устройства; на фиг. 2 — структурная схема блока байтового сумматора; на фиг. 3— структурная схема блока масок; на фиг. 4функциональная схема блока выработки сигналов запрета; на фиг. 5 — блок-схема алгоритма вйполнения команд сложения/вычитания с фиксированной точкой; на фиг, 6 — блок-схема алгоритма выполнения команд сложения/вычитания с плавающей точкой RR u RX формата, короткие операн; ды; на фиг. 7 и 8 — блок-схема алгоритма выполнения команд сложения/вычитания с плавающей точкой RR и RX, длийные операнды; на фиг. 9 — блок-схема алгоритма выполнения команд сдвига вправо; на фйг.
10- блок-схема алгоритма выполнения команд сдвига влево; на фиг. 11 — блок-схема алгоритма выполнения команды "Умножение для чисел с фиксированной точкой"; на фиг. 12 и 13 — блок-схема алгоритма выполнения команды "Деление с фиксированной точкой"; на фиг. 14 и 15 — блок-схема алгоритма выполнения команды "Преобразова-. ние в десятичную"; на фиг. 16 и 17— блок-схема алгоритма выполнения команды
"Преобразование в двоичную".
При этом на блок-схемах приняты следующие обозначения:
Знак " - " обозначает передачу данных, например R2 — К7 - К11, т.е. информация из второго регистра передаетСя через коммутатор 7 и-далее через коммутатор 11;
R1 - ° (регистр (например Я2-второй регистр);
КН-й-коммутатор;
X1 f-й-сумматор
СДВ-сдвигатель;
ИНВ-блок инверсии;
ФКН-блок формирования кода нормализации;
Вх24, Вх25-первый и второй входы данных;
BblX — выход данных:П1, П2-старшие байты (порядок) входных данных с плавающей точкой;
БМ-блок маски;
О-код нуля на входах узлов;
6-код шестерки на входах узлов;
2RI — сдвиг регистра Rl на два разряда вл ево;
ЛП-локальная память
ЦД-цифра делителя;
ЦЧ-цифра частного;
ККД-регистр кода кратности делителя.
5 Структурная схема арифметического устройства (Ау) содержит регистр 1 первого операнда 1 (n/2)-разрядный). регистр 2 вто.рого операнда 2 (n/2)-разрядный, третий регистр 3 n/2-разрядный первый регистр 4
10 (и/2-разрядный), второй регистр 5 и/2-разрядный, третий коммутатор 6 (n/2 + 4}-разрядный, четвертый коммутатор 7 (и/2 +
4)-разрядный, первый коммутатор 8 (и/2 +
4)-разрядный, второй коммутатор 9 (n/2 +
15 4)-разрядный, блок инверсии 10 (n/2 + 4)разрядный, коммутатор 11 кода и/2-разрядный, коммутатор 12 входов байтно-тетрадного сдвигателя n/2-разрядный, блок 13 байтового суммирования, до20 полнительныЧг сумматор 14 (и/2 +
4)-разрядный, основной сумматор 15 (и/2 +
4)-разрядный, байтно-тетрадный сдвигатель 16 n/2-разрядный, первый дополнительный регистр 17 (n/2 + 4)-разрядный, 25 второй дополнительный регистр 18 (n/2 +
4)-разрядный, регистр 19 межтетрадных переносов, регистр 20 основного сумматора, блок 21 формирования коДа нормализации, регистр 22 байтно-тетрадного сдвигателя
30 n/2-разрядный 22; блок 23 маски, блок 24 выработки сигналов запрета, первый вход
25 данных устройства, второй вход 26 данных устройства, выход 27 данных устройства, входы 28 и 29 признаков границ начала
35 первого и второго операндов устройства. вход 30 кода сдвига устройства, вход 31 направления сдвига устройства.
Структурная схема блока байтового суммирования (фиг. 2) содержит коммутато40 ры 32 и 33 первого и второго входов блока, узел 34 байтовой обработки, узел 35 коммутации, выходной регистр 36. узел 37 управвения разрядными сдвигами, регистр 38 признака границы конца операнда, вход 39
45 кода нормализации, выход 40 кода сдвига. информационный выход 41 блока, выход 42 кода разрядного сдвига, выход 43 признака границы конца операнда. Блок маски (фиг.
3) содержит узел 44 формирования масок
50 качала, конца по счетчику, узел 45формиро-. вания маски сдвиговой, узел 46 коммутаЦии маски, регистр 47 маски. узел 48 управления синхровходами маскируемых регистров, вход 49 запретов занесения в регистры, вы55 ходы 50-52 сигналов разрешения занесения данных регистров третьего, первого и регистра байтно-тетрадного сдвигателя.
Функциональная схема блока выработки сигналов запрета (фиг. 4) содержит дешифратор 53 кода нормализации, 1748153 6 торы на элементах 1533КП12 и 530 КП2 со- 40 ответственно.
Коммутатор входов байтно-тетрадного блока байтового сумматора. Реализован на элементах 1533КП15.
Блок формирования кода нормализасдвигателя предназначен для передачи íà: ции предназначен для формирования:кода вход сдвигателя информации с выхода реги- " нормализации 32-разрядных чисел с плавастра первого операнда либо с выхода ком- 45 ющей точкой, а также чисел с. фиксированмутатора вторых входов основного ной точкой (положительных и сумматора. Управление коммутатором мик- отрицательных). Представляет собой комби-. ропрограммное, реализован на элементах национную схему. анализирующую слева
1533КП11.: направо информацию в тетрадах выходов
Первый и второй коммутаторы предназ- 50 основного сумматора на наличие в ней всех начены для передачи одного из своих вхо- нулей (положительные числа с фиксировандов на первый и второй вход сумматора нойточкойичисласплавающейточкой)или управляется микропрограммнойаппаратно всех едийиц (отрицательные числа с фиксипри выполнении команд сдвига. Микро:- рованной точкой). Выход комбинационной программное управление осуществляется 55 схемы запоминается под управлением микпри выполнении десятичной коррекции, об- . ропрограммы в регистре кода нормализаработке адресов операндов (на схеме цепи ции и может там храниться сколь угодно не показаны), выполнении команд деления долго. иумножения. Реализованыкоммутаторына Регистр кода нормализации имеет 5 разрядов, старший разряд определяет надешифратор 54 кода сдвига вправо,дешиф- элементах 1531КП15 и 530КП2 соответстратор 55 кода сдвига влево, первый элемент. венно для первого и второго входа.
И 56, элементы НЕ 57 и 58, второй и третий Все сумматоры (основной, дополниэлементы И 59 и 60, элементы ИЛИ 61 и 62, тельный и байтовый) предназначены для элемент2И-ЗИЛИ вЂ” НЕ 63, первый,третий и 5 арифметической и логической обработки второй триггеры 64 — 66, первый и второй дайных, реализованы на СИС 1531ИПЗ.Для информационные входы 67 и 68, первый, ускорения прохождения группового перевторой и третий выходы 69 — 71 блока (69, 70, носа используются СИС 1531ИП4.
71), первый и второй управляющие входы Блок инверсии выполнен на элементах
72-73 блока. 1 530М2(Исключающее ИЛИ).
Регистры первого и второго операндов, Управляющйй инверсный вход на фиг. 1 первый и третий регистры, регистр байтно- не показан; управление осуществляется в тетрадного сдвигателя предназначены для основном микропрограммно для реализахранения данных в течение любого числа цийфункции Б-А, отсутствующей в реализатактов и реализованы на элементах ТМ8 се- 15 ции СИС АЛУ. Аппаратное управление рий, удовлетворяющих требованиям по на - производится при делении; под управленигрузочной способности и времени задержки ем кода кратности и знака остатка, а также (530, 1531). Управление занесенйем в peiin= при сложении/вычитании коротких операнстры микропрограммное, ., дов формата в эавйсимости от знака операнРегистр основного сумматора, первый и 20 да, .второй дополнительные регистры, второй " Коммутатор кода предназначен для регистр, регистр межтетрадных перенОсов формирования кода коррекции в тетрадах хранят данные, поступающие на их вход в - придесятичнойобработкелибоформироватечение одного такта обработки, и исполь- . ния кода "Bce нули " при делении, зуются в основном (кроме регистра йерейо- 25 Реализован коммутатор кода на эпеменco8) для устранения гонок, Регистр тах 53ОКП14, При отсутствии микропрогмежтетрадных переносов используется дпя -раммного указания, что выполняется формирования кода коррекции.: - .:.. десятичная обработка, коммутатор передаРегистр основного сумматора реализо- ; ет без изменения выход"коммутатора втован на элемейтах 133ТМ7, первый и второй 30 рых входов основйого сумматора, при дополнительные регистры — на элементах десятичной обработке коммутатор передает
530ТМ8 и 1533КП13 (мультиплексор с запо- в старшем и младшем разряде каждой тетминанием) соответственно, второй регистр рады логичвский нуль, а в двух остальных и регистр межтетрадных переносов — на разрядах I-й тетрады состояние (-го разряда
1533ТИ8. Третий и четвертый коммутаторы 35 регистра межтетрадных переносов. предназначены для выбора и передачи од- : :: Байтно-тетрадный сдвигатель предназного из четырех входов (выбор источника начей дпя выполнения циклического сдвига определяется микропрограммно, связи на вйраво данных, на m байт в одну тетраду фиг. 1 не показаны). Реализованы коммута- (m= О,. 1, 2, 3). Код сдвиг поступает с выхода
1748153 правление сдвигов (О-правый, 1-левый), младшие 4 разряда определяют количество сдвигов, при левом сдвиге количество сдвигов представлено в дополнительном коде.
Младшие 3 разряда кода нормализации управляют формированием маски, а через блок байтового сумматора-с двигателем, По состоянию старших двух разрядов блок выработки сигналов запрета формирует сигналы запрета в регистры первый и третий, регистр байтно- тетрадного сдвигателя для формирования результата сдвига, Код нормализации длинного операнда формируется в два прйема (такта).
Таблица истинности схемы для формирования кода нормализации в каждом такте работы приводится в табл. 1.
Состояние тетрад обозначено следующим образом:
0 — в тетраде все нули для положительного или все единицы для отрицательного числа:
1 — в тетраде содержатся нули и единицы;
Х-состояние тетрады безразлично, Блок байтового сумматора (фиг. 2) предназначен для формирования характеристики результата, формирования кода сдвига для выравнивания характеристик (положительная разность характеристик кода сдвига), для выравнивания операндов по границам их размещения в слове данных (разность кодов на входах признаков границ начала первого и второго операндов, формирование дополнительных кодов параметра байтно-тетрадного сдвига в командах сдвига влево(из байта данных, равных нулю вычитается код байтно-тетрадных сдвигов) и разрядного сдвига вправо, формирует признак границы операнда.
Выбор данных„подлежащих обработке, осуществляют коммутатором первого и второго входов 32 и 33. Управление коммутаторами микропрограммное. Узел байтовой обработки 34 выполняет функцию сложения или вычитания (задаваемую микропрограммно) над операндами с выходов коммутаторов 32 и 33, Узел коммутации 35 блока байтового сумматора готовит код сдвига (выход 40) для управления байтно-тетрадным сдвигателем (коммутация кода нормализации с входа 39 или кода сдвига с выхода узла байтовой обработки), а узел управления разрядными сдвигами путем передачи с входа кода сдвига 31 на выход 42 прямого кода при левых сдвигах или дополнительного — при правых, Регистр 37 запоминает признак границы конца операнда, сформированный вуале байтовой обработки 34, Первые и вторые информационные входы коммутатора первого входа 32 узла байтовой обработки соединены соответственно со старшим байтом первого входа 25 дан5 ных устройства и входом 28 признака границы начала первого операнда, Третий информационный вход коммутатора 32 соединен с первым информационным входом узла коммутации 35 и подключен к входу 39
10 кода нормализации. Первый и второй информационные входы коммутатора 33 второго входа узла байтовой обработки соответственно соединены со старшим байтом второго входа 26 данных устройства и
15 со входом 29 признака границы начала второго операнда, Третий информационный вход коммутатора 33 соединен с информационным входом узла 38 управления разрядными сдвигами и подключен к входу 31
20 кода, Выходы коммутаторов 32 и 33 соединены соответственно с первыми и вторыми информационными входами узла 34 байтовой обработки, выход которого соединяется
25 с вторым информационным входом узла 35 коммутации и с информационным входом регистра 37 признака границы конца операнда, выход которого соединен с выходом
43 признака границы конца операнда блока.
30 Выход узла 35 коммутации соединен с информационным входом выходного регистра
36 блока и с выхода 40 кода сдвига блока.
Выход регистра 36 соединен с третьим информационным входом узла коммутации и с
35 информационным выходом 41 блока, Управляющий вход узла 38 управления разрядными сдвигами подключен ко входу 30 кода направления сдвигов, а его выход соединен с выходом 42 кода разрядного сдвига блока.
40 Блок маски (фиг, 3) предназначен для формирования маски, управляющей занесением информации в регистры: первый, третий и байтно-тетрадного сдвигателя (управление узлами блока микропрограмм45 ное не показано). Узел управления синхровходами маскируемых регистров 48 дополнительно имеет аппаратный управляющий вход 49. Сигналы для указанного управляющего входа вырабатывает блок
50 выработки сигналов запрета 24, Узел формирования масок качала, конца по счетчику 44 вырабатывает коды масок, используя входные данные, содержащие код признака границы начала первого one55 ранда 28 и код признака границы конца операнда 43, По коду признака границы начала первого операнда формируются маски начала и по счетчику.. 1748153
10
20
30
40
50
Формирование маски начала производится для выделения байт, не принадлежащих обрабатываемому операнду в начальном слове операнда и зависит от направления обработки и вида данных-десятичные и недесятичные. Микропрограммно устанавливаются признаки направления обработки ТНО и десятичных данных ТДО (не показаны), Направление обработки операнда слева направо определяется состоянием ТНО = 1, а справа налево ТНО = О.
Признак десятичных данных определяет состояние признака ТДО = 1, а ТДО - 0— признак недесятичных данных. Таблица истинности для формирования маски начала в зависимости от кода на входе и состояния управляющих сигналов (THO, ТДО) приведена в табл, 2. Маска по счетчику используется для выделения отдельного байта из слова данных. Формирование маски по счетчику производится в соответствии с табл. 3.
Модифицируя код на входе признака границы начала первого операнда можно выделить любой байт слова для обработки.
По коду признака границы конца oneранда, поступающему из блока байтового сумматора формируется маска конца, которая выделяет байты, не принадлежащие обрабатываемому конечному слову операнда, и зависит от направления обработки. Конечную границу операнда вычисляет блок байтового сумматора путем сложения кода границы начала операнда и кода длины оперэндэ. Соответствие кода маски конца условиям формирования приведено в табл. 4.
Реализация узла 44 — комбинационная схема, срабатывающая в соответствии с табл. 2 — 4. Узел 44 имеет два выхода: первый выход содержит либо код маски начала, либо код маски по счетчику в зависимости от микропрограммного указания, второй код маски конца. Оба выхода соединены соответственно с первым и вторым входами узла коммутации маски 46, третий вход которого подключен к выходу узла формирования маски сдвиговой 45.
Узел формирования маски сдвиговой 45 формирует код маски в зависимости от поступающего на вход кода сдвига 40 из блока байтового сумматора 13. Код сдвига байтовый сумматор формирует при выполнении любых операций сдвига (комэнда сдвига, нормализация; выравнивание порядков, выравнивание границ операндов), Формирование маски сдвиговой также зэвисит от направления обработки и от вида данных — десятичные недесятичные.
Соответствие кода маски сдвиговой условиям ее формирования приведено в табл.
На выходе узла 45 устанавливается код маски сдвиговой при условии, если не было микропрограммного указания на формирование маски по счетчику. Реализация узла— комбинационная схема. работающая в соответствии с табл. 5.
Сформированные перечисленными узлами коды масок поступают на вход узла коммутации, который формирует результирующую маску. Если блок маски должен сформировать маску по счетчику, то код маски по счетчику без изменения передается на вход узла коммутации, Если же формируется сдвиговая маска, то различаются три случая: первый такт обработки, конечный такт обработки и текущий такт обработки, Нахождение в том или ином такте определяется микропрэграммно. В первом такте обработки узел коммутации собирает по ИЛИ коды масок сдвиговой, начала, и результат сборки передает на выход.
На конечном такте обработки узел коммутации 46 собирает по ИЛИ коды масок сдвиговой и конца, а код результирующей маски передает нэ выход. В текущих тактах обработки узел коммутации 46 передает на свой выход код маски сдвиговой. 8-разрядный код результирующей маски с выхода узла коммутации 46 поступает на вход регистра маски 47, который в каждом такте обработки производит запоминание сформированного предыдущими узлами кода.
Выход регистра маски 47 соединен с информационным входом узла управления синхровходами мэскируемых регистров 48 (первого, третьего, байтно-тетрадного сдвигателя).
Управление работой этого узла производится микропрогрэммно (входы не показаны) и аппаратно из блока выработки сигналов запрета, причем на управляющий вход 49 узла поступают сигналы управления выработкой синхросигналов для регистров из блока выработки сигналов запрета 24.
Узел упрвления синхровходами первого, третьего и байтно-тетрадного регистров
48 вырабатывает сигналы разрешения занесения данных отдельно для каждой тетрады каждого регистра.
Разрешение занесения в регистры может вырабатываться в двух режимах: с учетом маски и без учета маски. Задание режима производится микропрогрэммно для всех регистров, а для первого и третьего регистров блок 24 также в некоторых случаях аппаратно переключает узел в режим учета маски. Блок 24 может также запретить организацию сигналов разрешения занесения в. регистры, выработав сигналы запрета.
1748153
В режиме учетна маски при отсутствии сигналов запрета от блока 24 узел управления синхровходами вырабатывает сигнал разрешения занесения в тетраду, если соответствующий этой тетраде разряд маски равен нулю, Если же разряд маски равен единице, то занесение в эту тетраду запрещается, Выбор регистра или регистров, занесение в которые маскируется, осуществляется микроп рограммно, В режиме без учета маски состояние разрядов маски не анализируется и разрешение на занесение данных вырабатывается микропрограммно для всех тетрад определенного регистра (регистров) для приема данных, При наличии сигналов запрета занесения, поступающих из блока 24, состояние разрядов маски не анализируется и запрещается выработка сигналов занесения данных для всех тетрад, отменяя микропрограммные указания.
Первый, второй и третий выходы узла 48 поступают соответственно на первый 50, второй 51 и третий 52 выходы блока маски, Реализация блока маски из-за простоты алгоритма не приводится, так как содержит простые дешифраторы кода сдвига и сборки по ИЛИ их выходов для организации трех выходных сигналов.
Блок выработки сигналов запрета (фиг.
4) вырабатывает сигналы запрета приема в маскируемые регистры. (во все тетрады) и сигналы установки режима маскируемого приема, если микропрограммно такой прием не указан, в следующих случаях: запрет занесения в регистр байтно-тетрадного сдвигателя вырабатывается при сдвиге влево, сли параметр сдвига больше восьми тетрад, и при сдвиге вправо, если параметр сдвига равен или больше восьми тетрад; запрет занесения в третий или первый регистры вырабатывается независимо от, направления сдвига при параметре сдвига, большем, чем восемь тетрад.
Аппаратный сигнал установки режима маскированного занесения вырабатывается при сдвиге влево, если параметр сдвига больше восьми тетрад, и при сдвиге вправо, если параметр сдвига больше восьми, но меньше шестнадцати тетрад, Дешифратор 55 кода признака нормализации предназначен для выработки нормализации влево более, чем на восемь тетрад. Указателем этого признака является
4-й разряд 5-разрядного кода нормализации, вырабатываемого блоком 21 в соответствии с табл. 1 и обозначенного цифрами
3 — 7 (3-старший разряд), который поступает на первый информационный вход 67 блока.
Выработка признака нормализации влево более, чем на восемь тетрад разрешается, если на выходе элемента И 56, подключен5 ного к управляющему входу дешифратора
55 кода нормализации 55, устанавливается высокий уровень.
Высокий уровень на выходе элемента И
56 устанавливается, если входы элемента
10 имеют высокий уровень, функциональное назначение входов элемента И 56 следую- . щее. Первый вход указывает, что нормализация производится влево, так как имеются случаи нормализации вправо, Признаком
15 нормализации влево является единичное состояние разряда 3 кода нормализации (табл. 1), поступающего на первый информационный вход 67 блока. Второй вход эле-. мента, подключенный к первому
20 управляющему входу 72, блока микропрограммно определяет, что источником сдвига является код нормализации (высокий уровень на входе 72 блока), Низкий уровень на первом управляющем входе 72 микропрог25 раммно указывает, что источником сдвига является четвертый выход блока байтового сумматора, подключенный к второму информационному входу 68 блока, Поэтому инвертор 57 преобразует низкий уровень
30 первого управляющего входа 72 блока, готовя через первые входы элементов И 59 и 60 сигнал разрешения для срабатывания дешифраторов 54 и 55, Вторые входы упомянутых элементов И соединены с признаком
35 направления сдвигов, поступающим вместе с кодом сдвига по второму информационному входу 68 блока. Признаком направления сдвига является старший (нулевой) разряд восьмиразрядного (Π— 7) кода сдвига на вхо40 де 68.
Единичное состояние определяет сдвиг влево, нулевое — сдвиг вправо. Высокий уровень на выходе элемента И 59 разрешает по управляющему входу дешифрацию разря45 дов 1-4 кода сдвига вправо, поступающих на информационный вход дешифратора 54, а на выходе элемента И 60 — дешифрацию разрядов 1-7 кода сдвига влево, поступающих яа информационный вход дешифрато50 ра 55, Дешифратор 54 вырабатывает на первом, втором и третьем своем выходе следующие признаки сдвига вправо соответственно на число тетрад, равное или больвее тридцати двум, равное или большее восьми, 55 большее шестнадцати. Дешифратор 55 вырабатывает соответственно на первом и втором своем выходе признаки сдвига вле во на число тетрад; 1) более. восьми, 2) равное или более шестнадцати.
13
1748153
Элементы ИЛИ 61, 62 и 63 собирают работки на 100 нс по сравнению с прототипризнаки, выработанные дешифраторами пом, что позволило увеличить быстродейст53-55 в соответствии с алгоритмом форми- вие устройства при обработке коротких, рования результата сдвига(табл. 6),для фор- длинных и расширенных операндов. мирования на своих выходахдвухсигналов 5 Информация в предлагаемом АУ образапрета занесения в регистры: байтно-тет- . батывается следующим образом. радного сдвигателя — на элементе 61, и в Первый операнд из местной или основпервый, третий регистры — на элементе 63 и ной памяти принимается в регистр 1, второй сигнала аппаратной установки режима мас- операнд — е регистр 2. кированного занесения данных в первый, 10 Для выполнения сложения/вычитания, третий регистры — на элементе 62. Сигнал сравнения поразрядных логических операзапрета занесения на выходе элемента 63 ций И, ИЛИ, Исключающее ИЛИ операнды вырабатывается при условии, что на втором подаются на коммутаторы 6 и 7. На коммууправляющем входе 73 блока существует таторе 6 возможен прием информации из микропрограммно определяемый высокий 15 первого 4 или третьего 3 регистра, а также уровень, указывающий на то, что микро- возможна передача информации из регистпрограмма разрешает занесение данных с ра 1 первого операнда со сдвигом на один выхода байтно-тетрадного регистра в пер- разряд влево. На коммутаторе 7 возможен вый или третий регистры, Сформированные прием информации из регистра 2 второго элементами ИЛИ сигналы запоминаются в 20 операнда, первого 4, третьего регистров 3 и триггерах 64 — 66 для формирования сигнала из регистра 18 дополнительного сумматора в необходимый интервал времени(синхров- 14. С выходом коммутатора 6 информация ходы на фиг. 4 не показаны), Выходы триг- поступает на блок инверсии 10. который в геров 64 — 66 соединены с выходами 69-71 зависимости от состояния сигнала управлеблока соответственно, Таким образом, на 25 ния передают на первый информационный выходе 69 блок вырабатывает сигнал запре- вход основного сумматора 15 прямой или та занесения в регистр байтно-тетрадного обратный код, тем самым разрешая произсдвигателя, на выходе 71 — сигнал запрета водить вычитание данных. второго входа из занесения в первый, третий регистры при . данных первого входа, либо наоборот из приеме данных из регистра байтно-тетрад- 30 данных второго входа вычитать данные перного сдвигателя, на выходе 70 — сигнал ус- вого входа сумматора 15. С входа коммутатановки режима маскированного приема тора 7 информация поступает на данных в первый, третий регистры. коммутатор кода 11, который передает либо
В табл. 6 приведены условия. занесения код числа без изменений, либо код десятиданных в регистр дополнительной цифры, 35 чной коррекции.
Поскольку регистр дополнительной цифры и Код десятичной коррекции в тетрадах его связи на фиг, 1 не показаны, то и форми- формируется в соответствии с состояниями рование сигнала управления занесением разрядов регистра 19 переносов, данных в него блоком 24 не показано, тем Если разряд регистра 19 переносов раболее, что формирование сигнала запрета 40 вен единице, то в соответствующей ему тетзанесения данных в регистр дополнитель- раде на вход коммутатора 11 кода ной цифры аналогично формированию за- передается код "6 ". Если же разряд регистпрета занесения в другие регистры и не ра переносов равен нулю, то в соответствупредставляют трудностей при выполнении ющей ему тетраде на выход коммутатора алгоритма, приведенного в табл. 6. Запрет 45 кода передается код "0". занесения вырабатывается только при вы- При необходимости регистр 19 межтетполнении сдвигов вправо при обработке ко- радных переносов обнуляется и коммутатор ротких операндов, если параметр сдвига кода 11 передает на выход код нулей во всех больше восьми тетрад и при обработке тетрадах. длинных операндов: если параметр сдвига 50 Информация с выхода коммутатора 11 больше восьми, то во втором такте обработ- кода поступает на второй вход основного ки, и в обоих тактах, если параметр сдвига сумматора 15. Основной сумматор 15 выбольше16. Признак второготактаобработ- полняет восемь арифметических и восемь ки длинных операндов определяется микро- логических функций. Причем две арифметипрограммно. 55 ческие функции выполняются, если на перАУ позволяет выполнить полный набор вый вход основного сумматора поступает команд ЕС 3ВМ, включая операции над чис- инверсное значение числа. Если обозначить лами длинного и расширенного формата. первый вход сумматора А, второй — Б, входБлагодаря уменьшению каскадности уст- ной перенос- р, то выполняемые основным ройства сокращена длительность такта об1748153 сумматором функции можно представить следующи 4 обре. и м . арифметические функции -А+ р, А+ р, А+Б+р, F+р,А+Б+р,А+Б+р,А+F+р, А + А + р; логические функции; - О, А +) Б, А.Б,Б, -(А+) Б), А,A/Á. где знаком + обозначено арифметическое сложение, инверсное значение данных, F-шестнадцатиричный код F во всех тетрадах данных, 0-нулевое значение выхода независимо от значений на входах, + — исключающее ИЛИ, — коньюнкция,/ — дизьюн кция.
Результат обработки информации на сумматоре 15 заносится в регистр 20. Занесение производится в каждом такте обработки. В каждом такте обработки производится формирование кода нормализации в блоке 21, который при необходимости, определяемой микропрограммным управлением, заносится в регистр кода нормализации блока 21. В каждом такте обработки также производится занесение эйачения межтетрадных переносов в регистр 19, Информация с выхода регистра основного сумматора 20 может быть принята в регистры 1-4, Прием информации в регистры 1, 2 и 4 производится без сдвига, а в регистр 3 прием может происходить как беэ сдвига, так и со сдвигом на четыре разряда вправо или два разряда влево, В регистр 4 ранее принятая информация может быть сдвинута на четыре разряда вправо или два разряда влево. Для устранения гонок при сдвигах информации используется регистр
5, как промежуточный регистр, хранящий содержимое регистра 4 от середины текущего такта до середины следующего такта.
При соче.,ании приема иэ регистра 20 в регистр 3 со сдвигом и сдвига на столько же разрядов содержимого регистра оба регистра 3 и 4 работают как единый 64-разрядный регистр, т.е. выдвигаемые разряды иэ одного регистра заносятся в другой, Прием информации в регистр 3 или 4 из регистра 20 может быть замаскирован потетрадно. Условия маскирования и код мас ки вырабатывает блок маски 23 на основе информации, поступающей на вход блока 23 из блока 13 или с входа признака границы начала первого операнда 27, или с выхода блока формирования кода нормализации
21. Блок маски 23 вырабатывает сигналы разрешения занесения в тетрады регистров
3,4 и 22.
Для выполнения разрядных сдвигов (сдвига на 1, 2, 3 разряда) в предлагаемом
AY информация иэ регистра 1 поступает на входы коммутатора 8, передающего информацию со сдвигом влево Hà 3.и 2 разряда и
16 коммутатора 9, передающего содержимое регистра 1 без сдвига или со сдвигом влево на 1 разряд. Для выполнения разрядных сдвигов вправо блок байтового сумматора
5 13 вырабатывает дополнительный код параметра разрядных сдвигов, в соответствии с которым осуществляется сдвиг влево, Выдвинутые при выполнении сдвига влево разряды вместе со сдвинутым кодом числа
10 передаются через дополнительный сумматор 14 и запоминаются сначала .в регистре
17, а затем йереписываются в регистр 18, Для передачи выдвинутых разрядов разрядность коммутаторов 8 и 9, дополнительного
15 сумматора 14, регистров 17 и 18 расширена на одну тетраду со стороны старших разрядов. Сумматор 14 выполняет арифметическую функцию сложения и вычитания. поэтому для передачи одного из входов на
20 выход сумматора 8 имеет входную шину "0", а коммутатор 9 — шину "К", По шине "О" подается логический нуль во все разряды, по шине "К" -4-разрядная константа в каждую нечетную тетраду, четные тетрады нуZ5 левые.
Константа может быть задана любой, в том числе и нулевой, что обеспечивает передачу любого из входов сумматора на свой выход.
30 При выполнении операции сдвига влево выдвинутые разряды сравниваются со знаковым разрядом для организации признака переполнения, При выполнении операции сдвига впра35 во выдвинутые разряды являются значащими. Поэтому содержимое регистра 18 через коммутаторы 7 и 11, сумматор 15 передается в регистр 20. Коммутатор 7, сумматор 15, регистр 20 также имеют расширение раэ40 рядной сетки на четыре разряда, содержимое регистра 20 передается в регистр 3 со сдвигом вправо на четыре разряда,.при этом выдвину гые на разрядную сетку разряды размещаются в пределах разрядной сетки, 45 формируя тем самым результат сдвига вправо;
Аппарат реализации разрядных сдвигов совместйо с дополнительным сумматором
14, выполняющим арифметические функции
50 сложения и вычитания, используется для формирования чисел, кратных числу, хранящемуся в регистре 1, Возможно формирование 16-кратных от нулевого значения до
15-кратного.
55 Так как дополнительный сумматор 14 со своими входными коммутаторами 8 и 9 и выходными регистрами 17 и 18 соединен последовательно с основным сумматором, ; но операции на нем могут производиться независимо и параллельно основным, то
1748153
18 подготовка кратных может быть выполнена в конвейерном режиме и одновременно с работой основного сумматора 14. Кратные используются при выполнении команд умножения, деления и переводов в двоичную 5 систему счисления, На дополнительном сумматоре 15 выполняется первая десятичная коррекция.
Код коррекции (код 0110 в каждой тетраде) поступает с входа устройства "610 на вход 10 коммутатора 8, код числа из регистра 1 — на коммутатор 9. Сумматор 14 в этом случае выполняет арифметическое сложение, Для выполнения байтных и тетрадных сдвигов информация может быть. подана че- 15 рез коммутатор 12 либо из регистра 1, либо с выхода коммутатора 7, передающего на свой выход содержимое регистров 2, 3, 4 и
18, Байтно-тетрадный сдвигатель 16 осуществляет циклический сдвиг вправо. Блок 13 20 вырабатывает 8-разрядный код сдвига, младшие 3 разряда которого управляют сдвигателем 16.
Блок байтового сумматора 13 организует код сдвига в следующих случаях. 25
Для команд сдвига вправо 6-разрядный код сдвига с входа кода сдвига преобразуется следующим образом: четыре старших разряда кода сдвига через коммутаторы входов и байтовый сумматор транслируется нэ вход байтового сумматора без изменения. С выхода байтового сумматора 4 старших разряда кода сдвига поступают на схему аппаратного управления маскированием для выработки (при наличии соответствующих условий) сигналов запрета занесения в маскируемые регистры и сигнала установки режима разрешения маскирования, 3 младшие разряда выхода байтового сумматора поступают на коммутатор параметра сдвига для формирования сигналов управления байтно-тетрадным сдвигателем и на выход блока байтового сумматора для передачи кода сдвига в блок маски
Два младших разряда кода сдвига преобразуются комбинационной схемой в дополнительный код, на базе которого вырабатываются сигналы управления коммутаторами 7 и 8 для выполнения сдвигов