Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем
.pdf3 6 0 Глава 7. Операционные устройства вычислительных машин
на последнем шаге форма представления частного меняется, переходят к представ в стандартной двоичной системе.
Встандартном алгоритме деления без восстановления остатка помимо сдвига
вкаждой итерации выполняется операция сложения или вычитания. В варианте SRT, в зависимости от кодов операндов в отдельных итерациях, достаточно толь ко сдвига, что, безусловно, ускоряет процесс деления. Согласно статистическим данным, в среднем число сложений и вычитаний при использовании этого алго ритма сокращается в 2,67 раза.
Деление в избыточных системах счисления
Наиболее распространенные методы ускорения операции деления основаны на применении алгоритмов, где частное представляется в системе счисления, отлич ной от двоичной. Это означает, что цифры частного могут иметь больше, чем два значения, например {-1,0,1}, как это было в алгоритме умножения Бута, или {-2, -1,0,1,2}. В таких системах одно и то же число может быть записано несколькими способами, из-за чего системы называют избыточными. Очередная цифра частного
визбыточной системе счисления, в зависимости от базы этой системы, соответ ствует двум или более цифрам в двоичном представлении частного, и для нужного количества двоичных цифр частного и остатка требуется меньше итераций. В то же время реализация такого подхода ведет к усложнению аппаратуры делителя,
вчастности надстраивается логика определения операции, выполняемой в очеред ной итерации. Для этой цели в состав устройства деления включается специаль ная память, хранящая таблицу, определяющую необходимые действия, в зависи мости от текущей комбинации цифр в частичном остатке и делителе. Тем не менее выигрыш в быстродействии оказывается решающим моментом. Так, в микропро цессорах Pentium при делении мантисс чисел с плавающей запятой используется алгоритм SRT с базой 4, то есть частное сначала вычисляется с использованием цифр -2, - 1 , 0, 1, 2 с последующим преобразованием результата к стандартному двоичному представлению. В этом варианте выбор очередной цифры частного про изводится с помощью таблицы, состоящей из отдельных секций. Конкретную секцию определяют четыре старшие цифры делителя (после его нормализации). Входом в секцию служат шесть старших цифр частичного остатка. Ч0 в каждой итерации сдвигается не на один, а на два разряда, то есть число итераций сокраща ется вдвое. Известны варианты делителей, где берется еще большее основание си стемы счисления, в частности 8 и 16. В этом случае логика работы устройства су щественно усложняется.
Операционные устройства с плавающей запятой
Операции над числами в формате с плавающей запятой (ПЗ) имеют существен ные отличия от аналогичных операций целочисленной арифметики, поэтому их обычно реализуют с помощью самостоятельного операционного устройства. Как и целочисленное ОПУ, операционное устройство для чисел в формате ПЗ как ми-
38 2 Гл"ава 7. Операционные устройства вычислительных машин
Заключительный этап
Действия на завершающем этапе выполнения любой арифметической операции идентичны и сводятся к выявлению нулевого значения мантиссы (потери значи мости мантиссы), нормализации мантиссы, выявлению отрицательного перепол нения порядка, "упаковке" составляющих результата.
Нулевое значение мантиссы может получиться в результате операции, напри мер при сложении или вычитании мантисс. Второй причиной может стать сдвиг мантиссы вправо для устранения переполнения. В обоих случаях имеет место си туация потери значимости мантиссы, и результат операции принимается равным нулю. Для стандарта IEЕЕ 754 это означает, что все цифры порядка результата необходимо обнулить, а также то, что нормализацию мантиссы результата произ-- водить не нужно.
Нормализация мантиссы результата сводится к последовательному ее сдвигу влево до тех пор, пока старшую позицию не займет единица. Каждый сдвиг сопро вождается уменьшением на единицу порядка результата. В ходе уменьшения по рядок может стать отрицательным, что для смещенных порядков свидетельствует о получение числа, непредставимого в данном формате. В такой ситуации резуль тат принимается равным нулю и одновременно формируется признак потери значимости порядка.
Взавершение мантисса результата округляется и, если это предусмотрено фор матом ПЗ, из нее удаляется скрытый разряд.
Впоследней фазе осуществляется "упаковка" всех составляющих результата (знака, порядка и мантиссы), после чего сформированный результат заносится
ввыходной регистр ОПУ.
Сложение и вычитание
В арифметике с плавающей запятой сложение и вычитание - более сложные опе рации, чем умножение и деление. Обусловлено это необходимостью выравнива ния порядков операндов. Алгоритм сложения и вычитания включает в себя следу ющие основные фазы:
1.Подготовительный этап.
2.Определение операнда, имеющего меньший порядок, и сдвиг его мантиссы впра во на число разрядов, равное разности порядков операндов.
3.Приравнивание порядка результата большему из порядков операндов.
4.Сложение или вычитание мантисс и определение знака результата.
5.Проверку на переполнение.
6.Заключительный этап.
Операции предшествует вышеописанный подготовительный этап, в ходе кото рого операнды «распаковываются» и помещаются в регистры ОПУ,
Сложение и вычитание выполняются идентично, но в случае вычитания необ ходимо изменить знак второго операнда на противоположный. Далее производит ся проверка с целью выяснения, не равен ли нулю один из операндов. Если это имеет место, в качестве результата сразу берется другой операнд.