Горнец Н.Н., Рощин А.Г. Организация ЭВМ и систем (2006) (1186251), страница 17
Текст из файла (страница 17)
Выполним сложение мантисс: (М„)лк = 1 1000001 (! (М )дк = 0 1000001 /О (М„)лк+ (Мв)л" = (Мв+ Мв)лк = ФО 0000010 !1. Нормализация нарушена справа. Мантисса суммы сдвигается влево на пять разрядов. Мантисса суммы после сдвига: (Мв + Мв)а» = 0 1010000/О Округление.
+ !! Мантисса суммы после округления: (М„+ Мв)л" = 0 1010000. Порядок суммы после нормализации: (Ржв)дк = 0 101 + 1 011 = 0 000. Результат: (М„+ Мв)пк = 0 1О! 0000 -+ (М„+ Мв), = + 01010000. (Р„,в)л" = 0 000 -+ (Рв,в)з = + 000. Сумма: (А + В)пк = +0.1010000 х 1О'ввв -э (А + В)г = +0 101 -+ (А + В),о = =+'/ Точный результат: — 15'/, + 16'/, = +'/ь При выполнении операции вычитания знак вычитаемого изменяется "а противоположный, далее операция продолжается как сложение. 4 гоРмх 97 Пример 4.1б.
Определить разность чисел, представленных в форме с ПТ. Операцию выполнить с использованием МДК. А~о = -5з/П Аз = — 101 11' Апт = -0 101! 1 х 1О в| ~ Вм = + 3 з/~, 'Вг = + 11. 101; Впг = + О 11101 х 10 ив. (М„)"'= 1 10111; (М„)мд" =11 0!001; (Р )и'= 00 011; (Р )'л'= 00 01! (М )'"= 011!01; (М )'д'=0011!01; (-Мв)мак=1100011. (Р,)пк = 00 010; (Р,)"л' = 00 010; (- Р,)мак = 11 11О.
Вычислим разность порядков: (Р„)млк = 00 011 (-Рв) (ЛР)идк = 00 001 -+ (ЬР)пк = 00 001 -+ (ЬР)з = +001 -+ (ЬР) и = +1. Разность порядков не равна нулю, выравнивание порядков необходимо. Разность порядков больше нуля, число В имеет меньший порядок Сдвигается мантисса числа В. Мантисса числа (- В) после сдвига: (-Мв)млк = 1! 1000 Ц1. Порядок разности (Р„в)"'лк = (Р„)млк = 00 011. Выполним сложение мантисс: (Мв)илк = 11 0100ЦО (Мл)мак+ ( М )мдк (Мл Мв)мдк т10 11010(1. Нормализация нарушена слева. Мантисса разности сдвигается вправо на один разряд. Мантисса Разности после сдвига: (̄— Мв)идк = 11 О! 101)0 Округление. + ~1 Мантисса разности после округления: (̄— Мв)ндк = 11 0110!. Порядок разности после нормализации: (Р„в)"'ак = 00 011+ 00 001 = = 00 100.
Результат: (̄— Мв)пк = 1! 10011 -+ (̄— Мв), = -0.10011. (Рв в)мак = 0 100 -+ (Рв в)з = +100. (А — В)пт= 0 10011х!0"вв-+ (А — В)з = — 1001 1-+ (А — В)м =-9/и Точный результат: -5'/, — 3'/в = -9'/в. Погрешность возникла при сдвиге мантиссы числа В при выравнивании порядков. Умножение чисел с ПТ. Произведение чисел в этом случае может быть определено следующим образом: (А)птх (В)пт = (Мах 2ввНМвх 2вв) = (М„х Мв)(2вв + 2вв). Таким образом, при умножении чисел с ПТ мантисса произведения равна произведению мантисс сомножителей, а порядок произведения — сумме их порядков. Умножение мантисс производится как умножение дробных чисел с ФТ, а сложение поряд- 98 „в — как сложение целых чисел с ФТ.
Если порядки смещены, > при сложении порядков сумму порядков следует уменьшить на личину смещения. Умножение чисел с ПТ выполняется в следующем порядке: подготовительный этап, сложение порядков, умножение мантисс, заключительный этап. Если на подготовительном этапе один из операндов окажется равным нулю, то произведение принимается равным нулю и операция на этом заканчивается.
Если произведение не равно нулю, выполняется сложение порядков. При использовании смещенных порядков перед суммированием один из порядков уменьшается на величину смещения, чтобы избежать переполнения порядков. При суммировании порядков в зависимости от их величины возможно переполнение порядка или потеря его значимости и формирование соответствующего признака. В этом случае операция заканчивается и ОС выдает соответствующее сообщение. Если порядок произведения имеет допустимую величину, выполняется умножение мантисс сомножителей. Мантиссы перемножаются как дробные числа с ФТ. Результат умножения должен иметь одинарную разрядность, поэтому младшие разряды произведения отбрасываются (старший из них остается в дополнительном разряде).
На заключительном этапе проводится нормализация результата. При этом возможна потеря цифровых разрядов. Для уменьшения погрешности проводится округление путем прибавления единицы к дополнительному разряду. Результат упаковывается и отправляется в память. Пример 4.17. Выполнить умножение чисел в формате с ПТ. А|а = -2в/в'* Ав = — 1О ! 01* 'Апт = -0.10101 х 10 юм 4о = +5~/4 Вв = +10!.01; Впт = +0.10101 х 10~~~. (Мх)"» = 1 10101; (М„)д" = 1 01011; (Р„)"» = 0 010; (Рл) л» = 0 010; (Мо) "» = 0 10101; (Мо)д» = 0 ! 0101; (Ро)" » = 0 О! 0; (Р )д» = 0 011, Вычислим сумму порядков: (Рд~" + (Ро)д» = 0 011 + 0 О!О = 0 101. (Сложение выполняется с использованием несмешенных порядков.) Умножение модулей мантисс выполняем начиная со старших разрядов множителя и сдвигом суммы ЧП влево (табл.
4.7): (~М„~п»х!Мо!и») = )М„х Мо)п» = 0.0110111001. Порядок произведения: (Рл„о) = (Рв)л»+ (Ро)д» = 0 10!. (Рд„а)в =+101. Нормализация нарушена справа. Модуль мантиссы произведения после нормализации: !Мах Мо! = О. ! 1011! 0010. Порядок произведения после нормализации: (Рл,в)в = + 100. Модуль мантиссы произведения после округления: )М„х М~)п» = 0.11011! 10010.
+ !! !М„х Мо/и» = 0.11100. 99 Таблица 4Л Формирование модуля мантиссы Результат: (АхВ)з =-0.11100х10"~ — «(АхВ)„= (-'/8)х2 = — 14. Точный результат: (-2~/«) х 5~/4 = 1Зм/«ь Погрешность возникла при отбрасывании младших разрядов произведения.
Деление чисел с ПТ. При делении чисел с ПТ частное определяется следующим образом: (А)пт/(В),п. — — (М„х 2~")/(Мах 2~«) = (М„/Ма)(2~ — 2~'). 100 Делимое А!е= 4!/з Вычитание делителя 1101 Делитель В!за а!1/е 00 1001 0000 + 11 001! 10110 Частное (А!В)!е= — 2з/4 ТГГ22 Деление корректно !!!!! !!)!! -г!)!! !!!! !!!! --Т! ! ! )!! )!! ---г! ! )! — — — 2! Остаток В!а=+ '/з ! ! = 11 1100 0000 11 1000 000 Остаток < 0 Сдвиг остатка влево Прибавление лелителя + 00 1101 =00 0101 000 ОО 1010 00 + 11 0011 = !1 1101 00 11 1010 0 Остаток > О Сдвиг остатка влево Вычитание делителя Остаток < 0 Сдвиг остатка влево Прибавление делителя + 00 1101 = 00 0111 00 1!1О + 1! 00!1 = 00 0001 00 0010 11 0011 Осзаток > 0 Сдвиг остатка влево Вычитание делителя Остаток > 0 Сдвиг остатка влево Вычитание делнгеля Остаток < 0 Дополнительный 11 0101 разряд лля округления Рис.
4.19. Вычисление модуля мантиссы частного 101 Мантисса частного равна частному от деления мантисс, а пор ядок частного — разности порядков делимого и делителя. Деление мантисс выполняется как деление дробных чисел с ФТ, а вычитание порядков — как вычитание целых чисел с ФТ. Пример 4.18. Выполнить деление чисел с ПТ, если Ам = -4'/,; А, = 100.1; Апт = -0.100! х 1О'е". Ви =+1~/а, 'Вз =+110.1; Впт =+01!01 х 10"". (М ) п' = 1 1001; (М ) !к = 1 0111; (Р )"' = 0 011; (Р ) дк = 0 011. (ив)пи=01101; (М )"=01!01; (Ра)пи=0001; (Р)'к=0001.
(- Р,)дк = 1 и 1. Вычислим разность порядков: (Рл)дк — (Рв)дк = 0.011 + 1.111 = 0 010. Вычитание производим с использованием несмещенных порядков. Порядок частного Р„/в— - + 1О. Вычисление модуля мантиссы частного выполняется путем деления модуля мантиссы делимого на модуль мантиссы делителя (рис. 4.19). При делении используется МДК: (1М~~)л" = 00.1001; (/Ма!)лк = 00.1101; (-~Ма/)лк = 11.0011. Модуль мантиссы частного: ()Мз)/)Ма~)пк ()М~/Ма!)пк О.!О! 1 ! О.
Порядок частного: (Р„/а) = +10. Нормализация не нарушена. Модуль мантиссы частного после округления: !М„/М !и = ОАО1! ! О + )1 (М„/М, !пк = О. 1011. Результат: (А/В)з = -О 1011 х !Она — э (А/В) и = (- и/ь) х 2 ~ = -2 /„. Точный результат: (-4'/р)/!'/з = -и/о -2,77.
Погрешность возникла за счет отбрасывания младших разрядов частного. Логические операции. Такие операции выполняются над логическими данными, которые представляют собой совокупность не зависимых друг от друга битов (разрядов). Операции производятся над каждым битом отдельно, результаты операции над отдельными битами никак не связаны друг с другом. К основным логическим операциям обычно относят операции отрицания (инверсии), логического сложения (дизъюнкции), логического умножения (конъюнкции), а также сложения по модулю 2.
Логические операции могут быть реализованы либо с помощью многофункционального сумматора, либо специализированным блоком логических операций. Рис. 4.20. Структура операционного блока логических операций 102 функциональная схема ОБ логических операций представляет собой набор одноразрядных схем (рис. 4.20). Разряды операндов А и В поступают на комбинационную схему, выполненную на элементах И вЂ” НЕ с прямыми и инверсными входами.
Блок управления в соответствии с кодом операции выдает управляющие сигналы и задает режим работы схемы для выполнения заданной операции. На выходе комбинационной схемы формируется результат С = А а В, где символ «*» означает заданную логическую операцию. Кроме рассмотренных выше операций в блоке логических операций может также выполняться операция сравнения. 4.4. Многофункциональные АЛУ Операционные блоки для выполнения отдельных групп операций могут быть объединены в единую схему многофункционального АЛУ (рис. 4.21). В состав схемы входят регистры Рг1, Рг2, РгЗ, РгЗ', РгА, РгВ и РгСм разрядностью 4 байта, а также регистры РгС, Рг)З и РгСч1 разрядностью 1 байт. Регистр РгСч1 является выходным регист- мвх Рис.
4.21. Структура многофункционального АЛУ 103 ром блока логических операций и одновременно выполняет роль реверсивного счетчика. Загрузка операндов в АПУ происходит по входной магистрали МВх, выдача результата — по выходной магистрали МВых. Использование регистров при выполнении операций в АЛУ показано в табл. 4.8. Сложение-вычитание чисел с фиксированной точкой выполняется в основном сумматоре См.
Слагаемые А и В заносятся в регистры Рг! и Рг2 и далее на регистры РгА и РгВ. Операция выполняется в сумматоре См. Результат операции фиксируется в РгСм и может быть выдан на выходную магистраль данных. Умножение и деление с ФТ выполняются с помощью одних и тех же узлов (см. рис. 4.15). Сдвиг множителя и частного осуществляется при передаче данных из РгЗ в РгЗ'. При умножении имеется возможность прямой передачи данных из РгЗ в РгВ для передачи младших разрядов суммы ЧП или частного.
Старшие разряды произведения фиксируются в регистре сумматора РгСм, младшие— в регистре РгЗ. Частное формируется в регистре РгЗ, откуда через регистр РгВ передается в РгСм. Результат операции выдается из РгСм на выходную магистраль. При сложении чисел с ПТ слагаемые поступают на регистры Рг1 и Рг2. Далее знаки слагаемых передаются на триггеры знаков ТгЗн1 и ТгЗн2. Мантиссы слагаемых (М„и Ма) передаются в регистры РгА и РгВ, а смещенные порядки (Р„и Ра) — в РгС и РгР. При выравнивании порядков в блоке логических операций производится сравнение порядков, затем мантисса числа с меньшим порядком сдвигается вправо (в регистре РгА или РгВ) с соответствующим увеличением порядка. Предельное число сдвигов мантиссы задается счетчиком циклов СчЦ.