Особенности сложения чисел, представленных в форме с плавающей запятой
Операция сложения чисел, представленных в форме с плавающей запятой распадается на 4 этапа:
1. Выравниваются порядки слагаемых (меньший порядок увеличивается до большего, а мантисса преобразуемого числа сдвигается вправо (число денормализуется)). В машине определяется Р1-Р2, а потом ясно, что и куда сдвигать.
2. Производится преобразование мантисс слагаемых в один из модифицированных кодов.
3. Мантиссы суммируются по правилам сложения дробных чисел с фиксированной запятой.
4. В случае надобности мантисса суммы переводится в прямой код, производится нормализация суммы и округление мантиссы
Преобразовывать всегда нужно меньшее слагаемое, т.е. то у которого порядок меньше, чтобы не произошло переполнения разрядной сетки мантиссы преобразуемого числа. При сложении мантисс может произойти «временное, кажущееся» переполнение разрядной сетки, которое можно устранить путем сдвига мантиссы результата вправо и увеличением порядка результата.
Коме того, при сложении чисел, представленных в форме с плавающей запятой возможны следующие особые случаи, которые вызывают прерывания работы процессора:
– переполнение порядка (выход величины порядка за пределы разрядной сетки в положительную сторону);
– исчезновение порядка (выход величины порядка за пределы разрядной сетки в отрицательную сторону);
– потеря значимости (получение нулевой мантиссы при ненулевом порядке).
Операционный автомат и микропрограмма сложения чисел, представленных в форме с фиксированной запятой
Пусть необходимо построить операционное устройство для выполнения сложения чисел, представленных в форме с фиксированной запятой. Исходные операнды поступают на вход устройства последовательно за два такта по шине DI(0:7) в следующем формате:
Результат должен быть выдан на шину DO(0:7) в таком же формате. В случае переполнения необходимо сформировать сигнал признака переполнения OV.
Тогда структурная схема ОУ будет иметь вид.
Напишем микропрограмму и построим операционный автомат сложения чисел с фиксированной запятой.
Операционное устройство (ОУ) может быть представлено в виде композиции двух автоматов: операционного (ОА) и управляющего (УА) (рис.1).
Для построения ОУ, выполняющего операцию сложения чисел, представленных в форме с фиксированной запятой, необходимо выбрать алгоритм выполнения заданной операции. Как известно, для выполнения арифметических операций над числами в ЭВМ используются прямой, обратный и дополнительные коды чисел. При этом основную операцию сложения в ОА выполняет сумматор. Наибольшее распространение получили сумматоры обратного и дополнительного кодов. Будем считать, что для выполнения операции сложения будет использоваться комбинационный сумматор чисел, представленных в дополнительном коде. Суммирование будем выполнять в модифицированном дополнительном коде (два разряда для представления знака числа). Для этого в сумматор вводится дополнительный разряд.
Можно предложить следующий алгоритм выполнения операции сложения чисел, представленных в форме с фиксированной запятой.
0. Принять операнды по входной шине на регистры А и В.
1. Перевести операнды в дополнительный модифицированный код.
2. Выполнить сложение полученных кодов операндов на сумматоре дополнительного кода.
3. Проверить на отсутствие переполнения разрядной сетки. Если есть переполнение – установить признак переполнения в 1. Переход на п.6.
4. Перевести результат в прямой код.
5. Выдать результат на выходную шину.
6. Конец.
Микропрограмма содержит исходные данные для построения ОУ. На ее основе можно построить операционный и управляющий автоматы, а, следовательно, и все операционное устройство в целом.
Для построения управляющего автомата строится кодированная ГСА и синтез УА проводится одним из ранее рассмотренных методов.
Для построения ОА используются следующие списки:
1. Список слов и их типов, которые были использованы при написании микропрограммы (ее описательная часть). Он имеет следующий вид.
– РгА(0:7) – внутреннее слово с памятью;
– РгВ(0:7) – внутреннее слово с памятью;
– РгС(0:8) – внутреннее слово с памятью;
– OV – внутреннее и выходное слово с памятью;
– DI(0:7) – входное слово без памяти;
– DO(0:7) – выходное слово без памяти.
2. Список микроопераций.
– y1: РгА:= DI;
– y2: РгB:= DI;
– y3: РгА:= РгА(1:7)+1;
– y4: РгB:= РгB(1:7)+1;
– y5: РгС:= РгА(0).РгА + РгВ(0).РгВ;
– y6: OV := 1;
– y7: РгC:= РгC(2:8)+1;
– y8: DO:= РгC(1:8).
3. Список логических условий.
– x1 = РгА(0);
– x2 = РгB(0);
– x3 = С(0) Å С(1);
– x4 = РгС(0).
Структурная схема ОА будет иметь следующий вид.
Если разметить ГСА как автомат Мили, то можно сделать вывод, что в зависимости от знаков операндов микропрограмма выполняется от 4 – 7 тактов. Написав другую микропрограмму, можно получить ОУ, выполняющую операцию, сложения за 2 такта (один из которых занимает прием первого слагаемого в ОА).
Также можно предложить различные промежуточные варианты, отличающиеся быстродействием и затратами оборудования.
Умножение чисел с фиксированной точкой.
Существуют 2 основных способа умножения:
1. Умножение, начиная с младших разрядов множителя
2. Умножение, начиная со старших разрядов множителя
Рассмотрим умножение на примере двоичных чисел.
Особенности умножения двоичных чисел в 2-й системе счисления:
1. Каждое частичное произведение представляет собой либо 0 либо множимое, сдвинутое на соответствующее количество разрядов влево или вправо в зависимости от способа умножения.
2. Т.о. умножение в 2-й системе счисления естественным образом сводится к двум операциям: сложению и сдвигу, т.е. для выполнения операции умножения нужен сумматор и сдвигатель (сдвиговый регистр).
3. Количество значащих цифр в произведении равно сумме значащих цифр в обоих сомножителях.
4. Знак произведения определяется как сумма по mod 2 знаковых размеров сомножителей.
Операция умножения состоит из ряда последовательных операций сложения частичных произведений. Операциями сложения управляют разряды множителя: если в очередном разряде множителя есть «1», то к сумме частных произведений добавляется множимое с соответствующим сдвигом; если в разряде множителя «0», то множимое не прибавляется.
В зависимости от того, что сдвигается (множимое или сумма частичных произведений) различают 4 метода реализации умножения.
1. Умножение, начиная с младших разрядов множителя, со сдвигом суммы частичных произведений вправо и при неподвижном множимом.
Регистр множителя и сумматор частичных произведений при этом должны иметь цепи сдвига вправо. Регистр множимого может не иметь цепей сдвига.
Так как по мере сдвига множителя вправо старшие разряды регистра множителя освобождаются, он может быть использован для хранения младших разрядов произведения, поступающих из младшего разряда сумматора частичных произведений по мере выполнения умножения. После окончания умножения старшие разряды произведения находятся в регистре сумматора, младшие – в регистре множителя.
При данном методе все три регистра имеют одинаковую длину, равную разрядности сомножителей. Этот метод нашел наибольшее применение в ЭВМ.
2. Умножение, начиная с младших разрядов множителя, при сдвиге множимого влево и неподвижной сумме частичных произведений.
Регистр множителя должен иметь цепи сдвига вправо, регистр множимого – цепи сдвига влево.
При этом методе регистр множимого и сумматор частичных произведений должны иметь двойную длину. Метод требует больше оборудования, но никаких преимуществ не дает, поэтому его применение нецелесообразно.
3. Умножение, начиная со старших разрядов множителя, при сдвиге суммы частичных произведений влево и неподвижном множимом.
Регистр множителя регистр сумматора частичных произведений должны иметь цепи сдвига влево.
При этом методе сумматор частичных произведений должен иметь двойную длину. Метод требует дополнительного по сравнению с первым методом оборудования. Несмотря на это он применяется в некоторых АЛУ, так как позволяет без дополнительных цепей сдвига выполнять и деление. Для выполнения операции деления на оборудовании метода 1 необходимы дополнительные цепи сдвига влево в регистре множимого (частного) и в сумматоре частичных произведений (разностей).
4. Умножение, начиная со старших разрядов множителя, при сдвиге множимого вправо и неподвижной сумме частичных произведений.
Регистр множителя должен иметь цепи сдвига влево, регистр множимого – цепи сдвига вправо.
При этом методе регистр множимого и сумматор частичных произведений должны иметь двойную длину. Однако, как и третий метод, он не требует дополнительных цепей сдвига для выполнения деления.
При четвертом методе, в котором сумма частичных произведений неподвижна, можно совмещать во времени операции сдвига и сложения и за этот счет увеличить быстродействие АЛУ при выполнении умножения (деления).
При любом методе умножения операция обычно начинается с анализа на «0» сомножителей. При равенстве нулю хотя бы одного сомножителя умножение не производится, а произведению присваивается нулевое значение.
Рассмотрим более подробно наиболее распространенный метод умножения чисел, начиная, с младших разрядов со сдвигом суммы частичных произведений вправо.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|