Рефераты. Выполнение арифметических операций в АЛУ

 

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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.