Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие [В.В.Коштоев, К.К.Кипиани].doc
Скачиваний:
191
Добавлен:
02.05.2014
Размер:
1.01 Mб
Скачать

11.3 Алгоритмы реализации арифметических действий с операндами, представленными в форме с плавающей запятой

Устройство для арифметических действий с числами с плавающей запятой можно представить следующим образом:

Рис. 11.9.

АС - накапливающий сумматор;

SR - запоминающий регистр;

MQ - регистр множителя-частного;

SC - счетчик сдвигов;

CHOV - индикатор переполнения порядка;

CHUN - индикатор исчезновения порядка;

DVOV - индикатор ошибки при делении;

FR - часть регистра, относящаяся к мантиссе (разряды:m 1; 1 _ младший разряд, m - старший);

CH - часть регистра, относящаяся к порядку;

QCH, QFR _ служебные разряды субрегистров AC(CH), AC(FR) соот-ветственно, которые используются для контроля за переполнением разрядной сетки;

L - регистр со значением смещения l.

Напомним, что обычно в формате с плавающей запятой вместо показателя p используют так называемую характеристику ("смещенный порядок"):

r = p + l,

где l - избыток (смещение), значение которого подбирается таким образом, чтобы при изменении значения показателя от некоторого минимального значения -|pmax| до максимального +|pmax|, характеристика r менялась от 0 до rmax\ Следовательно, характеристика не меняет своего знака. Для этого принимается, что

l = 2k-1 ,

где k - число разрядов, выделеных для представления порядка числа в формате с плавающей запятой.

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

В этом АУ, как и в АУ для операндов с фиксированной запятой, при вычитании содержимого регистра SR из содержимого регистра АС вычитаемое представляется в дополнительном коде непосредственно на входах параллельного сумматора

Субрегистры FC(FR), MQ(FR) объединены в один так называемый "касрегистр" (линия связи 1 и 2) для процедуры сдвига их содержимого вправо или влево. Причем, таким образом, чтобы при каждом таком сдвиге по линии связи 1 очередной младший разряд FC(FR) попадал в старший разряд MQ(FR) и наоборот. По линиии связи 2 содержимое старшего разряда субрегистра FC(FR) передается младшему разряду субрегистра MQ(FR). При активизации одной линии связи другая блокируется.

Здесь так же, как и на рис.11.1 не показан узел управления АУ.

11.3.1. Сложение и вычитание

При сложении складываются содержимое регистров SR и AC. При вычитании вычитаемое размещается в регистре SR, а уменьшаемое - в АС. Результат формируется в регистре АС.

Граф-схема алгоритма алгебраического сложения операндов с плавающей запятой приведена на рис.11.10. В этом алгоритме не учитывается особенность используемого в АУ параллельного сумматора.

Процедура сложения или вычитания состоит из 4 основных частей:

инициализации;

выравнивания порядка, т.е характеристики;

сложения или вычитания мантисс;

нормализации.

Во время инициализации выполняются следующие процедуры.

1. Если в OPCODE код вычитания, то содержимое SR(S) инвертируется, т.е. [SR(S)].

2. 0 MQ.

3. Если AC(FR) = 0, то переход к пункту 5, иначе к пункту 4.

4. Если SR(FR) = 0, то переход к пункту 6, иначе переход к процедуре выравнивания порядков.

5. Если SR(FR) = 0, то переход к пункту 6, иначе [SR] FC и переход к пункту 6.

6. Конец процедуры алгебраического сложения.

Во время выравнивания порядков мантисса операнда с меньшим порядком (характеристикой) сдвигается по разрядной сетке вправо с прибавлением единицы к его характеристике при каждом сдвиге на один разряд. Эта процедура продолжается до тех пор, пока характеристики обоих операндов не станут равными. Полученная таким образом характеристика, одинаковая для обоих операндов, присваивается, как предварительная, результату операции. Значение этой характеристики засылается в субрегистр AC(CH). Граф-схема процедуры выравнивания порядков приведена на рис.11.11 и более подробно на рис.11.12.

Далее осуществляется сложение или вычитание мантисс по правилам, аналогичным правилам для чисел с фиксированной запятой. В этой процедуре использутся субрегистры SR(S, FR), FC(S, QFR, FR).

В этом арифметическом устройстве при выполнении алгебраического сложения мантисса отрицательного операнда также представляется в дополнительном коде. Например, если SR(S) = 1, то SR(FR) := [SR(FR)] + 1, если же AC(S) = 1, то AC(FR) := [AC(FR)] + 1.

Если результат получился в дополнительном коде: AC(S) = 1= то он преобразуется в прямой, т.к. мантисса всегда модуль со знаком. Для этого выполняется следующая процедура: AC(FR) := [AC(FR)] + 1.

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

1. Если [AC(QFR)] = 1, то мантисса результата сдвигается вправо вместе с этим разрядом, а характеристика результата увеличивается на единицу.

2. Если в процессе нормализации произошло переполнение порядка: AC(QCH) = 1= то единица засылается в регистр CHOV\

3. Если [AC(QFR)] = 0 и старший разряд субрегистра AC(FR) также равен 0, то в счетчик SС загружается число равное числу разрядов, выделенных под мантиссу числа. После этого выполняется сдвиг [AC(FR)] на один разряд влево с вычитанием единицы из [AC(CH)] и SC = [SC] _ 1. Эта процедура продолжается пока в старшем разряде не появится единица или пока не станет [SС] = 0.

4. Если не произошло исчезновение порядка (r < 0), то процедура сложения или вычитания заканчивается. При исчезновении порядка в регистр CHUN засылается единица, а в регистр AС - 0.