Смекни!
smekni.com

Выполнение операций умножения и деления в ЭВМ (стр. 1 из 4)

СОДЕРЖАНИЕ

Введение

1. Выполнение операции умножения в ЭВМ

2. Умножение чисел, представленных в форме с плавающей запятой

3. Методы ускорения операции умножения

4. Матричный метод умножения

5. Выполнение операции деления в ЭВМ

5.1 Деление чисел с восстановлением остатков

5.2 Деление без восстановления остатков

6. Способы ускоренного деления

7. Деление чисел в машинах с плавающей запятой

Выводы

Литература


Введение

Тема реферата «Выполнение операций умножения и деления в ЭВМ».

Цель работы – ознакомится с выполнением операций умножения и деления в ЭВМ, как с фиксированной, так и с плавающей запятой.


1. Выполнение операции умножения в ЭВМ

Операция умножения является наиболее частой после сложения. Умножение может выполняться суммированием сдвинутых на один или несколько разрядов частичных произведений, каждое из которых является результатом умножения множимого на соответствующий разряд (разряды) множителя.

При точном умножении двух чисел количество значащих цифр произведения может в пределе достичь двойного количества значащих цифр сомножителей. Еще сложнее возникает ситуация при умножении нескольких чисел. Поэтому в произведении только в отдельных случаях используют двойное количество разрядов.

Наиболее просто операция умножения выполняется в прямом коде. При этом на первом этапе определяется знак произведения путем сложения знаковых разрядов сомножителей по модулю 2, затем производится перемножение модулей сомножителей согласно двоичной таблице умножения. Результату присваивается полученный знак.

Так как умножение производится в двоичной системе счисления, частные произведения либо равны 0 (при умножении на 0), либо самому сомножителю (при умножении на 1), сдвинутому на соответствующее количество разрядов.

Произведение можно получить двумя путями:

1) сдвигом множимого на требуемое количество разрядов и прибавлением полученного очередного частичного произведения к ранее накопленной сумме частичных произведений;

2) сдвигом суммы ранее полученных частичных произведений на каждом шаге на 1 разряд и последующим прибавлением к сдвинутой сумме неподвижного множимого либо 0.

Причем каждый из этих методов может различаться еще и тем, с младших или со старших разрядов начинается умножение.

Пример.

А=0,1101; В=0,1011;

1а) 0,1101 1б) 0,1101

0,1011 0,1011

1101 1101

1101 0000

0000 1101

1101 1101

10001111 10001111

Основываясь на вышеизложенном можно создать 4 основных метода машинного умножения в прямом коде:

1) умножение младшими разрядами множителя со сдвигом накапливаемой суммы частных произведений вправо;

2) умножение младшими разрядами множителя со сдвигом множимого влево;

3) умножение старшими разрядами множителя со сдвигом накапливаемой суммы частных произведений влево;

4) умножение старшими разрядами множителя со сдвигом множимого вправо;

Рассмотрим более детально каждую из схем умножения.

1) умножение младшими разрядами множителя со сдвигом накапливаемой суммы частных произведений вправо.

Алгоритм получения результата по данному методу может быть следующим:

1) содержимое сумматора обнуляется;

2) множимое умножается на очередной разряд множителя;

3) результат суммируется с содержимым сумматора;

4) содержимое сумматора сдвигается на 1 разряд вправо;

5) пункты 2, 3, 4 повторяются n-1 раз.

Пример.

Заданы операнды А=0,0101; В=0,1011, выполнить операцию умножения.

Таблица 1

Раз-ряд Наимено-вание
п/п мн-ля операции 1 2 3 4 5 6 7 8
обнуление 0 0 0 0 0 0 0 0
1 В1=1 Ах В1 0 1 0 1 0 0 0 0
å 0 1 0 1 0 0 0 0
® 0 0 1 0 1 0 0 0
2 В2=1 Ах В2 0 1 0 1 0 0 0 0
å 0 1 1 1 1 0 0 0
® 0 0 1 1 1 1 0 0
3 В3=0 Ах В3 0 0 0 0 0 0 0 0
å 0 0 1 1 1 1 0 0
® 0 0 0 1 1 1 1 0
4 В4=1 Ах В4 0 1 0 1 0 0 0 0
å 0 1 1 0 1 1 1 0
® 0 0 1 1 0 1 1 1

С=0,00110111.

2) умножение младшими разрядами множителя со сдвигом множимого влево.

Алгоритм получения результата по данному методу может быть следующим:

1) содержимое сумматора обнуляется;

2) множимое умножается на очередной разряд множителя;

3) результат суммируется с содержимым сумматора;

4) множимое сдвигается на 1 разряд влево;

5) пункты 2, 3, 4 повторяются n-1 раз.

Выполнение умножения по 3-му и 4-му способам умножения можно рассмотреть по аналогии к выше рассмотренным способам.

Анализ приведенных схем умножения показывает, что длительность процесса умножения по любой схеме составляет n циклов:

Ту=nτц.

Однако длительность циклов в разных схемах одинакова. Так во второй и четвертой схемах τцсм и, учитывая, что τсм сдв, эти схемы позволяют ускорить процесс выполнения операции умножения за счет совмещения операции сложения частичных произведений и сдвигов множимого;

2) по количеству оборудования предпочтение следует отдать первой, а потом третьей схеме умножения.

Наиболее удобными для применения в ЭВМ являются 1 и 4 схемы умножения.


2. Умножение чисел, представленных в форме с плавающей запятой

Если операнды заданы в форме с плавающей запятой:

А=a2ma и B=b2mb , то их произведение С=АхВ и С=с2mc

гдеC=a*b*2(ma+mb)

Алгоритм умножения нормализованных чисел состоит из следующих этапов:

1. Определение знака произведения путем сложения знаковых разрядов мантисс операндов по модулю 2.

2. Алгебраическое сложение порядков сомножителей в с целью определения порядка произведения.

3. Умножение модулей мантисс сомножителей по правилам умножения чисел с фиксированной запятой.

4. Нормализация и округление мантиссы результата. Следует учесть, что мантиссы сомножителей являются нормализованными числами. Поэтому денормализация мантиссы произведения возможна только на один разряд вправо. Она устраняется путем сдвига мантиссы на один разряд влево и вычитания 1 из порядка результата.

5. Присвоение знака результату.

Первые три операции могут выполняться одновременно, так как они независимы. Наличие операции определения знака произведения предполагает, что умножение мантисс выполняется в прямом коде.

При выполнении операции умножения в машине с плавающей запятой может получиться переполнение отрицательного порядка, которое будет интерпретировано как машинный нуль, если программой пользователя игнорируется признак исчезновения порядка. Может также возникнуть положительное переполнение порядка. В этом случае в первую очередь необходимо нормализовать мантиссу результата. Если и после этого переполнение порядка не устраняется, то машиной формируется признак переполнения порядка.


3. Методы ускорения операции умножения

Любое ускорение операции умножения даже ценой усложнения арифметических и логических схем позволяет существенно повысить производительность ЭВМ, т.к. примерно 70% машинного времени затрачивается на выполнение этой операции.

Известны способы ускорения умножения, направленные на сокращение общего количества и времени выполнения операций сложения, необходимых для образования произведения. Эти способы делятся на логические и аппаратные.

Под аппаратными понимают такие способы, которые требуют для своей реализации введения дополнительного оборудования в основные арифметические цепи, благодаря чему достигается совмещение во времени отдельных составных частей процесса умножения. Они подразделяются на способы 1-го и 2-го порядков. Для реализации способов 1-го порядка необходимо количество оборудования, пропорциональное числу разрядов машинного слова n. Для реализации способов 2-го порядка требуется объем оборудования, пропорциональный n2.

Под логическими понимают такие способы ускорения, при реализации которых сохраняется основная структура арифметических цепей умножителя, а ускорение достигается только за счет усложнения схемы управления.

Простейшим логическим способом является пропуск тактов суммирования в тех случаях, когда очередная цифра множителя равна 0.

В среднем, количество сложений при этом сокращается вдвое.

Можно сократить и среднее и максимальное количество суммирований при использовании как прямых, так и инверсных передач множимого в сумматор. Здесь учитывается то обстоятельство, что время умножения значительно сокращается, если при наличии в разрядах множителя нескольких нулей подряд производить его сдвиг сразу на несколько разрядов. Для этого видоизменяют код множителя с целью представления его с меньшим количеством разрядов, содержащих единицу. Например, группу единиц в множителе 011. ..110 можно преобразовать в группу 100...0

0, т.е. перейти к системе с цифрами 1,0,
.

Таким образом, в основе способа лежит представление числа как совокупности следующих последовательностей: нулей, единиц, нулей с изолированными единицами, единиц с изолированными нулями. При этом: два или более соседних нулей или соседних единиц рассматриваются как последовательность. Например, если умножение начинается с младших разрядов и множитель содержит последовательность единиц, то производится вычитание множимого с соответствующим (младшим) весом, а затем сдвиг через все эти единицы.