Cтраница 2
При выполнении операций над числами с плавающей запятой действия над мантиссами и порядками чисел выполняются раздельно. Над мантиссами - в сумматоре мантиссы, а над порядками - в сумматоре порядков. [16]
![]() |
А У с плавающей запятой. [17] |
Числа из ЗУ поступают по кодовым шинам мантиссы и порядка и заносятся в один из регистров Л У. Результат операции выдается только из сумматора мантиссы и порядка по кодовым шинам результата. Если результат операции находится в одном из регистров, то сначала происходит пересылка результата в сумматор. Так как в большинстве случаев результат операции находится в сумматоре, то указанная пересылка осуществляется редко, и время, затрачиваемое на нее, незначительно. [18]
В заключение отметим, что арифметическое устройство может выполнять операции над числами, представленными как с фиксированной, так и с плавающей запятой. Для этого в арифметическом устройстве есть сумматор мантисс, на котором тоже выполняются операции с фиксированной запятой, и сумматор порядка. В дальнейшем под сумматором ( См) будем понимать устройство, в котором после выполнения операции находится результат. [19]
В сдвигатель вправо из вычислителя порядков поступает разность порядков, показывающая, на сколько разрядов вправо должна быть сдвинута мантисса второго числа. Мантисса второго числа после сдвига поступает в сумматор мантисс. [20]
В этом случае производится суммирование мантисс. После образования результата исследуется состояние разряда переполнения сумматора мантисс и состояние старшего разряда мантиссы. Если в разряде переполнения стоит 1, то необходимо произвести нормализацию вправо. Если в старшем разряде мантиссы находится 0, то необходимо произвести нормализацию влево. [21]
Уравнивание порядков слагаемых производится путем сдвига вправо мантиссы слагаемого с меньшим порядком на число разрядов, равное разности порядков. Если модуль разности порядков больше длины разрядной сетки сумматора мантисс, то сложение мантисс не имеет смысла, поскольку сдвиг одной из мантисс на число разрядов, большее т, приводит к потере всех значащих цифр мантисс. Если СмП т, то результат определяется без сложения мантисс. В этом случае результат равен слагаемому с большим порядком. Знак разности порядков, хранимый на СмП, определяет слагаемое с большим значением. Если sign СмП О, то больший порядок имеет первое слагаемое. В этом случае на СмП из регистра РгП2 заносится порядок первого слагаемого. На сумматоре мантисс хранится мантисса первого слагаемого, которая представляет мантиссу результата. Если sign СмП 1, то больший порядок имеет второе слагаемое. После определения результата без сложения мантисс операция сложения заканчивается. [22]
Команды 10, 11 и 12, 13 являются независимыми и могут выполняться отдельно. Команды с 811, 13 производят передачу в соответствующие разряды ячейки cl содержимого сумматора мантиссы, сумматора порядков после выполнения предыдущей операции. [23]
Если мантисса результата ненормализована, то путем сдвига мантиссы и корректировки порядка суммы производится нормализация результата. По признаку переполнения сумматора СмМ, Pip2 V PiP-2 1 производится нормализация сдвигом мантиссы вправо. При этом в старший разряд СмМ [1] сумматора мантисс заносится значение 1 и порядок суммы увеличивается на единицу. При нормализации сдвигом вправо может произойти переполнение разрядной сетки сумматора порядков. Если происходит положительное переполнение сумматора порядков, р6р7 1, то вырабатывается признак переполнения ПП: 1 и операция сложения заканчивается. Если порядок суммы меньше ( 2 - 1), то после преобразования порядка суммы в прямой код операция сложения заканчивается. [24]
Этот перечень легко можно расширить, детализировав операции для сложения чисел, представленных в форме с плавающей запятой. Такими добавочными операциями будут операции выравнивания порядков, нормализации и др. Понятно, что в этом случае часть сумматора будет использоваться для изображения разрядов мантиссы, а часть - для изображения разрядов порядка. Часто в машинах делают отдельно сумматор порядков и сумматор мантисс, однако общая длина машинного слова ( с учетом знаковых разрядов) остается единой для всех устройств ЦВМ. [25]
Функциональная схема операционного суммирующего блока для чисел с плавающей запятой приведена на рис. 5.8. Сумматор мантисс СММ и сумматор порядков СМ состоят из двух регистров Ргы, Рггм и Рг1п, Рг. Если используются сумматоры комбинационного типа, то вводятся еще итоговые регистры мантисс и порядка. Для выполнения операций над мантиссами и порядками узла местного управления сумматора порядка УМУСМ и узла местного управления сумматора мантисс УМУСМЯ вырабатывают необходимую последовательность управляющих сигналов. [26]
Уравнивание порядков слагаемых производится путем сдвига вправо мантиссы слагаемого с меньшим порядком на число разрядов, равное разности порядков. Если модуль разности порядков больше длины разрядной сетки сумматора мантисс, то сложение мантисс не имеет смысла, поскольку сдвиг одной из мантисс на число разрядов, большее т, приводит к потере всех значащих цифр мантисс. Если СмП т, то результат определяется без сложения мантисс. В этом случае результат равен слагаемому с большим порядком. Знак разности порядков, хранимый на СмП, определяет слагаемое с большим значением. Если sign СмП О, то больший порядок имеет первое слагаемое. В этом случае на СмП из регистра РгП2 заносится порядок первого слагаемого. На сумматоре мантисс хранится мантисса первого слагаемого, которая представляет мантиссу результата. Если sign СмП 1, то больший порядок имеет второе слагаемое. После определения результата без сложения мантисс операция сложения заканчивается. [27]
Знаки чисел разные, и поэтому осуществляется операция вычитания. В регистр мантиссы числа А заносится обратный код мантиссы А, в регистр порядков - порядок числа А. Регистр второго числа заполняется мантиссой В, регистр порядка - порядком числа В. Далее производится микрооперация сравнения порядков. Для операций умножения и деления применяется сложение и вычитание порядков в специальном сумматоре. Поэтому сравнение производится в сумматоре вычитанием порядков для определения большего порядка. Абсолютное значение разности порядков определяет число сдвигов. Так как порядок числа А равен 101 ( 2) ( 5 ( ю), а порядок числа В равен 11 ( 2) ( 3 ( Ю)), то разность положительная и равна двум. Если разность порядков положительная, сдвигают число В, а если отрицательная, сдвигают число А. При отрицательной разности порядков, занесенной в счетчик, после каждого сдвига прибавляют единицу, а при положительной - вычитают единицу. Выравнивание порядков завершается, когда в счетчике окажется нуль. В нашем примере мантисса числа В сдвигается на два порядка вправо и начинается операция сложения мантисс в сумматоре мантисс. По окончании работы сумматора анализируется состав знакового разряда сумматора мантисс и, так как сумма получается отрицательной ( в нашем примере), то применяется обратное преобразование - из обратного в прямой код. Результат заносится в регистр числа В или в специальный регистр АЛУ. [28]
Знаки чисел разные, и поэтому осуществляется операция вычитания. В регистр мантиссы числа А заносится обратный код мантиссы А, в регистр порядков - порядок числа А. Регистр второго числа заполняется мантиссой В, регистр порядка - порядком числа В. Далее производится микрооперация сравнения порядков. Для операций умножения и деления применяется сложение и вычитание порядков в специальном сумматоре. Поэтому сравнение производится в сумматоре вычитанием порядков для определения большего порядка. Абсолютное значение разности порядков определяет число сдвигов. Так как порядок числа А равен 101 ( 2) ( 5 ( ю), а порядок числа В равен 11 ( 2) ( 3 ( Ю)), то разность положительная и равна двум. Если разность порядков положительная, сдвигают число В, а если отрицательная, сдвигают число А. При отрицательной разности порядков, занесенной в счетчик, после каждого сдвига прибавляют единицу, а при положительной - вычитают единицу. Выравнивание порядков завершается, когда в счетчике окажется нуль. В нашем примере мантисса числа В сдвигается на два порядка вправо и начинается операция сложения мантисс в сумматоре мантисс. По окончании работы сумматора анализируется состав знакового разряда сумматора мантисс и, так как сумма получается отрицательной ( в нашем примере), то применяется обратное преобразование - из обратного в прямой код. Результат заносится в регистр числа В или в специальный регистр АЛУ. [29]