Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
osnov.doc
Скачиваний:
9
Добавлен:
08.11.2019
Размер:
1.37 Mб
Скачать

11.4. Блок-схемы регистра накапливающего сумматора

11.4.1. Для работы с обратным кодом

+1

-1

Исходные данные N'

Параллельная запись

Сдвиг вправо

Сдвиг влево

Рис .11.16а.

11.4.2. Для работы с дополнительным кодом

Исходные данные +1

C2 -1

C1

Параллельная запись

Сдвиг вправо

Сдвиг влево

Рис. 11.16б.

По сигналу С2 и сигналу параллельной записи в регистр вводятся данные при загрузке АУ.

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

11.5. Алгоритм извлечения квадратного корня операнда с плавающей запятой

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

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

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

Очевидно, что процедура извлечения квадратного корня в этом случае распадается на две операции: извлечение квадратного корня из характеристики числа и из мантиссы. Первая операция достаточно тривиальна. Если характеристика числа четная, то ее делят на два, т.е. выполняется процедура [AC(CH)]. Если же характеристика нечетная, то выполняется один шаг денорализации: [AC(FR)] и [AC(CH)] _ 1\ Потом характеристика делится на два. В обоих случаях окончательный результат засылается в MQ(CH), т.к. в регистре MQ формируется результат извлечения квадратного корня.

Весь процесс извлечения кадратного корня из мантиссы операнда разбивается на ряд однотипных шагов, выполняемых последовательно, и на каждом шаге находится очередная цифра результата, начиная со старшей. Этот алгоритм очень похож на обычный алгоритм деления, за тем исключением, что на каждом очередном шаге реализации алгоритма все время меняется "делитель", который формируется в регистре SR из текущего значения результата извлечения квадратного корня. Окончательный результат получается за m -1 элементарных шагов алгоритма или же после того шага, на котором очередной остаток получился равнм нулю.

Значение очередной цифры результата определяется вычитанием из остатка (на первом шаге остаток - это подкоренное число!) специально сформированного "делителя". Как уже отмечалось, результат извлечения корня из мантиссы операнда формируется в субрегистре MQ(FR), а очередное значение "делителя" форимируется в субрегистре SR(FR).

На первом шаге алгоритма (i = 1)"делитель" (d) равен 12-1-i, т.е. 0.01.

На втором шаге d = ci-12-(i-1) + 12-(1 + i) = {c12-1 } + 12-3.

На третьем шаге d = c12-1 + ci-12-(i-1) + 12-(1 + i) = {c12-1 + c22-2} + 12-4

и т.д.

Фигурными скобками выделен очередной результат извлечения квадратного корня, полученный на текущем шаге алгоритма.

Здесь ci-1 -значение цифры очередного разряда результата, полученного на i-том шаге алгоритма. Само же значение цифры определяется на (i-1)-том шаге. Если результат вычитания из остатка положителен, то для следующего шага алгоритма ci-1 = 1, если же результат отрицателен, то ci-1 = 0.

В общем виде значение "делителя" на i-том шаге деления можно представить следующим образом:

Как уже отмечалось, фигурными скобками выделено формируемое значение результата извлечения квадратного корня.

Рассмотрим детально алгоритм извлечения квадратного корня из некоторого числа A = rAmA представленного в форме с плавающей запятой. Здесь rA - характеристика числа, mA - мантисса.

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

1. 0 TQ, F FC| mA AC(FR), rA AC(CH). Если А < 0 или А = 0, то конец процедуры извлечения корня квадратного: переход к п.14. В первом случае фиксируется ошибка: 1 TQ\

2. 0 MQ, 0 SR, m SC, 0 AC(QFR).

3. Если [AC(CH)] нечетно, то [AC(FR)], AC(CH) := [AC(CH)] _ 1\

4. [AC(CH)], [AC(CH)] MQ(CH).

5. 1 SR([SC] _ 1)\

6. AC(QFR,FR) := [AC(QFR,FR)] _ [SR(S,FR)], если [AC(QFR,FR)] = 0, то переход к п.13, иначе переход к п.7.

7. Если QFR = 0= то 1 MQ([SC]) и переход на п.8, иначе переход на п.9.

8. Если AC(FR) = 0, то переход к п. 13 , иначе переход к п. 10.

9. 0 MQ([SC]), AC(FR) := [AC(QFR,FR)] + [SR(FR)].

10. SC := [SC] _ 1, [AC(FR)].

11. Если [SC] = 0, то переход к п. 13, иначе переход к п.12.

12. [MQ(FR)] SR(FR) и переход к п. 5.

13. Если [AC(m)] = 0= то выполняется обычная процедура нормализации. В любом случае после п.13 происходит переход к п. 14.

14. Конец процедуры извлечения квадратного корня.

Совокупность процедур от пункта 5 до пункта 12 включительно составляет элементарный шаг алгоритма.

Граф-схема алгоритма извлечения квадратного корня приведена на

рис. 11.17.

Блок управления АУ, предназначенного не только для выполнения основных арифметических действий с операндами в форме с плавающей запятой, но и выполняющего процедуру извлечения квадратного корня, должен обеспечить передачу содержимого из MQ(FR) и SR(FR), ввод 1 в разряд регистра SR с номером равным значению [SC] - 1 и ввод 1 или 0 в разряд регистра MQ с номером равным [SC]. В АУ предусматривается дополнительный триггер TQ для фиксации ошибки при выполнении алгоритма извлечения квадратного корня.

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

Рис. 11.17.

Приложение

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]