Смекни!
smekni.com

Методические указания Пенза 1997 удк 681 06 (стр. 4 из 8)

№ п/п Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания Признаки, вырабатываемые в результате выполнения МО и комментарии
1 Запись исходных чисел в регистры мантисс и порядков ОА: - числа в прямом коде (модули чисел) РСМм(0/n):=|Mx(0/n)|, Р2м(0/n-1):=|Mx(n+1/2n)|, Р1м:=[My], РСМp:=[Px]2, Р1p:=[Py]2; - числа в дополнительном коде РСМм(0/n):=[Mx(0/n)]2, Р2м(0/n-1):=[Mx(n+1/2n)]2, Р1м:=[My]2, РСМn:=[Px]2 ,Р1n:=[Py]2 Мантиссы делимого распо­лагаются так, чтобы старший разряд мантиссы распо­лагался в старшем разряде РСМ после кода знака делимого. Для чисел в прямом коде в знаковые разряды регистров устанавливаются нули
2 Проверка исходных чисел на нуль Осуществляется так же как и для чисел с фиксированной точкой
3 Пробное вычитание (сложе­ние) для анализа на пере­полнение выполняется так же как и для деления двоичных чисел с фиксированной точкой При наличии переполнения для чисел с плавающей точкой осуществляется вос­становление мантиссы дели­мого с последующей ее денормализацией


Продолжение табл. 6

№ п/п Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания Признаки, вырабатываемые в результате выполнения МО и комментарии
4 Восстановление мантиссы делимого после пробного вычитания (сложения) при РСМ(0)1=x0. Для этой цели в сумматоре выполняется: - сложение, если при анализе на переполнение выполнялось вычитание РСМм:=РСМ(0)1+P1м; - вычитание, если при анализе на переполнение выполнялось сложение
При отсутствии перепол­нения формируется код знака частного для чисел в допол­нительном коде и осуще­ствляется сдвиг в РСМ и Р2 после чего начинаются такты деления чисел обоих кодов
5 Денормализация мантиссы делимого после анализа на переполнение производится при РСМ(0)1=x0 сдвигом мантиссы Mx вправо на 1 разряд и увеличением порядка Px на единицу P¢x=Px+1; M¢x:=ARS(Mx,1); РСМp:=РСМp+1 Знак мантиссы делимого после сдвига сохраняется, так как сдвиг арифметический


Продолжение табл. 6

№ п/п Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания Признаки, вырабатываемые в результате выполнения МО и комментарии
6 Деление мантисс после анализа на переполнение осуществляется по алгоритму деления чисел с фиксиро­ванной точкой (для p=0); при этом необходимо иметь в виду, что при наличии перепол­нения деление мантисс может производиться только после восстановления мантиссы делимого и ее денормализации Mz:=M¢x/My Если переполнение имело место, то код знака частного для мантисс в дополни­тельном коде может сфор­мироваться только в резуль­тате первого такта деления, выполняемого после денор­мализации делимого. В результате деления нор-мализованных мантисс и в случае деления денормали-зованных мантисс результат деления представляется в нормализованном виде


Продолжение табл. 6

№ п/п Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания Признаки, вырабатываемые в результате выполнения МО и комментарии
7 Определение кода знака частного и его запись в регистр частного. Если переполнения не было, то определение кода знака частного и его запись в регистр Р2 производится так же как и для чисел с фиксированной точкой. Если переполнение было, то код знака частного для мантисс в дополнительном коде определяется только в результате первого такта деления мантисс после денормализации делимого. Запись кода знака частного в младший разряд регистра Р2 при наличии переполнения осуществляется только после первого такта деления Р2(n):=z0 Для чисел в прямом коде наличие сигнала перепол­нения не влияет на опреде­ление кода знака частного, так как он определяется по формуле z0=x0 Å y0
8 Восстановление последнего остатка делимого и коррекция частного Производится так же как и при делении чисел с фиксированной точкой

Продолжение табл. 6

№ п/п Наименование МО, условия ее выполнения и представле­ние в операторах присваи­вания Признаки, вырабатываемые в результате выполнения МО и комментарии
9 Определение порядка ре­зультата с учетом возможной денормализации делимого Pz=P¢x-Py
Возможны особые случаи: - при Pz > Pmax.доп. вырабатывается сигнал пере­полнения порядка ОV=1; - при Pz < Pmin.доп. вырабатывается сигнал анти­переполнения Uп=1

На рис. 4 для примера представлен фрагмент ГСА операции сложения двоичных чисел с плавающей точкой - сложение мантисс после выравнивания порядков слагаемых и нормализация результата сложения. Для этого фрагмента ГСА в целях его завершенности предполагается, что начальному оператору соответствует размещение результатов выполненных микроопераций выравнивания порядков слагаемых в регистрах РСМм и Р1м, а конечному оператору - микрооперации записи результатов сложения в ОЗУ. Во фрагменте ГСА использованы два возможных способа записи логических условий: в первом случае значение сигнала переполнения разрядной сетки мантисс V, равное единице, свидетельствует о нарушении нормализации результата сложения мантисс влево; во втором случае условие нарушения нормализации результата сложения мантисс вправо записано в виде отношения HR = 0, при его ложности производится нормализация мантиссы результата влево.

Рис. 4 Фрагмент ГСА операции сложения чисел с плавающей точкой

1.3 Операционный автомат с магистральной структурой

На рис. 5 приведена структура операционого автомата c магистральной структурой.

Рис. 5 Структура операционного автомата с магистральной структурой

Операционный автомат включает:

– блок из 8-ми регистров общего назначения Р0 - Р7, предназначенных для хранения промежуточных результатов;

– регистр адреса РА, определяющий адрес оперативной памяти при чтении и записи данных;

– регистр аккумулятор АС, хранящий один из операндов или результат выполнения микрооперации;

– арифметико-логическое устройство АЛУ, в котором выполняются заданные микрооперации;

– регистр признаков РП, хранящий признаки выполненной микрооперации.

Все регистры операционного автомата 8-ми разрядные. В табл 7 приведен состав микроопераций Мj их 8-ми разрядная кодировка, а также описаны действия выполняемые каждой из них.

Таблица 7

Состав микроопераций

N

Код микрооперации

Действие

п/п

м8 м7 м6 м5 м4 м3 м2 м1

1

0000 0000

АС = РА

2

0000 0001

РА = РА + АС

3

0000 0010

Арифметический сдвиг вправо АС

4

0000 0011

Арифметический сдвиг вправо Р7

5

0000 0100

Циклический сдвиг вправо АС

6

0000 0101

Циклический сдвиг вправо Р7

7

0000 0110

Арифметический сдвиг влево АС

8

0000 0111

Арифметический сдвиг влево Р7

9

0000 1000

Циклический сдвиг влево АС

10

0000 1001

Циклический сдвиг влево Р7

11

0000 1010

Пустая микрокоманда (NOP )

12

0000 1011

Стоп

13

0000 1100

П(РА) = АС, запись в память содержимого аккумулятора по адресу в регистре РА

14

0000 1101

АС = П(РА), чтение в аккумулятор из памяти по адресу в регистре РА

15

0000 1110

АС => Стек

16

0000 1111

АС <= Стек


Продолжение табл.7