|
||||
|
000111 011101 101010 111010 |
011101 |
1 |
-X |
|
111010 111010 110100 001101 |
011101 |
0 |
2×X |
Необходимо отметить, что в начале этапа умножения n-разрядных чисел в СчЦ заносится число n/2.
Табл. 3.6. Правила обработки пар разрядов множителя
Значение триггера коррекции Т
Модифициро-ванное
значение Т
Значение,
прибавляемое к сумме частичных произведений
00
0
0
0
01
0
0
X
10
0
0
2×X
11
0
1
-X
00
1
0
X
01
1
0
2×X
10
1
1
-X
11
1
1
0
Глава 4. АЛУ для чисел с плавающей запятой
Структурная схема многофункционального АЛУ
В многофункциональном АЛУ (рис. 4.1) реализуются операции сложения, вычитания, умножения и деления чисел с плавающей и фиксированной запятой. Арифметические операции с плавающей запятой требуют выполнения операций, как над мантиссами, так и над порядками. Поэтому в ЭВМ используются отдельные узлы для обработки мантиссы и порядков или производится их последовательная обработка. Выбор способа обработки связан с требованиями к производительности ЭВМ.
Часть многофункционального АЛУ, предназначенная для проведения действий над мантиссами чисел, используется АЛУ с фиксированной запятой, и применяются те же алгоритмы выполнения арифметических операций. Для обеспечения действия над порядками в состав АЛУ универсального типа дополнительно включают сумматор порядков (СОЛО), два регистра порядков и коммутирующие элементы.
При рассмотрении структур АЛУ для операций с плавающей запятой примем, что числа с плавающей запятой имеют формат слова, изображенного на рис. 1.3. На данном АЛУ можно осуществлять операции и с числами с фиксированной запятой, но формат операнда при этом должен совпадать с форматом, изображенным на рис. 1.1.б.
В состав АЛУ входят:
1. регистр Рг1 для приема и хранения первого операнда;
2. регистр Рг2 для приема, хранения и сдвига второго операнда;
3. регистр Рг2’ для сдвига операнда, находящегося в регистре Рг2;
4. входные регистры сумматора РгА и РгВ;
5. сумматор СМ для суммирования поступающих на его входы данных и выработки определенных признаков;
6. выходной регистр сумматора РгСМ для фиксации результата суммирования;
7. регистры РгС и РгD для хранения порядков операндов;
8. схема СОЛО для выполнения логических операций (Ú, Ù) и операций сравнения (>, <, =) над однобайтовыми словами;
9. регистр счетчика РгСч1 для хранения порядка операнда и выполнения арифметических операций над ним;
10. триггеры знаков ТгЗн1 и ТгЗн2, хранящие знаки операндов;
11. счетчик циклов СчЦ, хранящий оставшееся количество предельных сдвигов, который декрементируется при выполнении сдвигов мантиссы.
4.1. Алгоритм сложения и вычитания чисел с плавающей запятой
Сложение и вычитание чисел с плавающей запятой производится по формуле:
Z = ,
где pX, pY и pZ – порядки чисел X, Y и Z соответственно;
mX, mY и mZ – мантиссы чисел X, Y и Z.
При выполнении операций сложения / вычитания необходимы следующие действия:
1. Произвести выравнивание порядков чисел. Порядок меньшего (по модулю) числа принимается равным порядку большего числа, а мантисса меньшего числа сдвигается вправо на число S-ричных разрядов, равное разности порядков чисел.
2. Произвести сложение (вычитание) мантисс, в результате чего получается мантисса суммы (разности).
3. Порядок результата принимается равным порядку большего числа.
4. Полученная сумма (разность) нормализуется.
Алгоритм операции сложения / вычитания в многофункциональном АЛУ (рис. 4.2) подразделяется на следующие этапы:
- прием операндов X и Y;
- выравнивание порядков операндов pX и pY;
- сложение мантисс mX и mY;
- нормализация результата Z.
Преобразование информации в функциональных узлах АЛУ производится отдельными микрооперациями, инициируемыми управляющими сигналами. Этапы выполнения на блок-схеме разделены пунктирной линией. Микрооперации в блоках, выполняемые в разных тактах, разделяются горизонтальной чертой.
Прием операндов
Данная процедура выполняется в блоках 1 – 5. Первое слагаемое (уменьшаемое) X в первом такте поступает на входной регистр Рг1, второе слагаемое (вычитаемое) Y во втором такте поступает на регистр Рг2. Знак первого слагаемого фиксируется в триггере знака ТгЗн1, а знак второго слагаемого в случае суммирования заносится без изменений в триггер знака ТгЗн2, а в случае вычитания триггеру ТгЗн2 присваивается инверсное значение знака второго слагаемого. В счетчике циклов СчЦ фиксируется предельное число сдвигов, равное количеству разрядов мантиссы (m = 24). Смещенные порядки слагаемых, каждый из которых занимает семь битов, передаются из Рг1 и Рг2 в регистры РгС и РгD для последующего сравнения и выравнивания порядков, а нулевые разряды регистров РгС и РгD не используются и обнуляются.
Выравнивание порядков (блоки 6 – 18) выполняется в случае, если порядки операндов не равны, и начинается со сравнения порядков для поиска большего из них. За порядок результата при выполнении суммирования принимается больший из порядков операндов.
При сравнении порядков возможны пять случаев:
1. рX – рY > т (m - число разрядов мантиссы). Из условия видно, что значение первого слагаемого значительно превышает значение второго слагаемого. В качестве результата принимается первое слагаемое, так как при выравнивании порядков все разряды мантиссы второго слагаемого принимают нулевое значение.
2. рY - рX > т. Второе слагаемого значительно больше первого. В качестве результата суммирования принимается второе слагаемое.
3. рX – рY = 0. Порядки чисел равны. Можно приступить к суммированию мантисс.
4. рX – рY = k1 ( k1 < т ). Порядок слагаемого X больше порядка слагаемого Y, но их разница не превышает количество разрядов мантиссы числа. Мантисса слагаемого Y сдвигается на k1 разрядов вправо, затем производится суммирование мантисс.
5. pY – рX = k2 ( k2 < т ). Порядок слагаемого Y больше порядка слагаемого X. Перед выполнением суммирования мантисс производится сдвиг на k2 разрядов вправо мантиссы слагаемого X.
Схема СОЛО производит суммирование содержимого регистров РгС и РгD или вырабатывает признаки (РгС > РгD, РгС < РгD, РгС = РгD).Значение меньшего порядка из соответствующего регистра передается в счетчик Сч1, где в дальнейшем данное значение будет увеличиваться на единицу при каждом сдвиге мантиссы числа вправо. Затем в предварительно обнуленный регистр (РгС или РгD) заносится значение большего порядка. Таким образом, в счетчике Сч1 находится значение меньшего порядка, которое после каждого сдвига мантиссы проверяется на равенство со значением большего порядка.
Если РгС > РгD, то схема СОЛО вырабатывает соответствующий признак и производятся следующие действия: осуществляется сдвиг мантиссы операнда, находящегося в регистре Рг2, на 1 разряд вправо, а значение счетчика Сч1 увеличивается на 1.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
При использовании материалов активная ссылка на источник обязательна.