- •Арифметические и логические основы вычислительной техники учебное пособие
- •Введение
- •Арифметические основы вычислительной техники Системы счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Критерии выбора системы счисления
- •Перевод чисел из одной системы счисления в другую
- •Перевод целых чисел.
- •Перевод правильных дробей.
- •Перевод чисел из системы счисления в систему счисления основания которых кратны степени 2
- •Кодирование чисел
- •Переполнение разрядной сетки
- •Модифицированные коды
- •Машинные формы представления чисел.
- •Погрешность выполнения арифметических операций
- •Округление
- •Нормализация чисел
- •Последовательное и параллельное сложение чисел
- •Сложение чисел с плавающей запятой
- •Машинные методы умножения чисел в прямых кодах
- •Ускорение операции умножения
- •Умножение с хранением переносов
- •Умножение на два разряда множителя одновременно.
- •Умножение на четыре разряда одновременно.
- •Умножение в дополнительных кодах.
- •Умножение на 2 разряда Мт в дополнительных кодах.
- •Матричные методы умножения.
- •Машинные методы деления
- •Деление чисел в прямых кодах.
- •Деление чисел в дополнительных кодах.
- •Методы ускорения деления.
- •Двоично-десятичные коды
- •Суммирование чисел с одинаковыми знаками в коде 8421.
- •Сложение чисел с разными знаками.
- •Двоично-десятичные коды с избытком 3
- •Код с избытком 6 для одного из слагаемых
- •Система счисления в остаточных классах (сок)
- •Представление отрицательных чисел в сок
- •Контроль работы цифрового автомата
- •Некоторые понятия теории кодирования
- •Обнаружение и исправление одиночных ошибок путем использования дополнительных разрядов
- •Коды Хемминга
- •Логические основы вычислительной техники Двоичные переменные и булевы функции
- •Способы задания булевых функций
- •Основные понятия алгебры логики
- •Основные законы алгебры логики
- •Формы представления функций алгебры логики
- •Системы функций алгебры логики
- •Минимизация фал
- •Метод Квайна
- •Метод Блейка - Порецкого
- •Метод минимизирующих карт Карно (Вейча)
- •Б) в) Рис. 19 Таблица истинности и карта Карно
- •Минимизация коньюнктивных нормальных форм.
- •Минимизация не полностью определенных фал
- •Кубическое задание функций алгебры логики.
- •Метод Квайна-Мак Класки
- •Алгоритм извлечения (Рота)
- •Минимизация фал методом преобразования логических выражений
- •Применение правил и законов алгебры логики к синтезу некоторых цифровых устройств Синтез одноразрядного полного комбинационного сумматора
- •Синтез одноразрядного комбинационного полусумматора
- •Синтез одноразрядного полного комбинационного сумматора на двух полусумматорах
- •Синтез одноразрядного комбинационного вычитателя
- •Объединенная схема одноразрядного комбинационного сумматора-вычитателя
- •Триггер со счетным входом как полный одноразрядный сумматор
- •Введение в теорию конечных автоматов Основные понятия теории автоматов
- •Способы задания автоматов
- •Структурный автомат
- •Память автомата
- •Канонический метод синтеза
- •Пример синтеза мпа Мили по гса
- •Синхронизация автоматов
- •Литература
- •220013, Минск, п.Бровки, 6.
Умножение с хранением переносов
Время, затрачиваемое на сложения двоичных чисел, состоит из времени необходимого для поразрядного сложения и времени на формирование переноса tсл = t+ + tпер. Поразрядное сложение является элементарной операцией, и время на эту операцию может быть сокращено путем использования более быстродействующих элементов. В то же время, если исключить необходимость выполнения межразрядных переносов при сложении, то время умножения уменьшится наtпер. Переносы, формируемые при сложении, записываются в отдельный регистр. Содержимое этого регистра добавляется в сумматор вместе с очередым частичным произведением. При этом сложение может выполняться паралельно по всем разрядам. В заключение следует отметить, что этот метод используется с алгоритмом A.
Пример: МН = 0,1011
МТ= 0,1101
0,0000
0,0000 регистр переносов
0,1011= Мн b4
0,1011
0,0000 регистр переносов
0,0101 1 2-1
0.0000= Мн b3
0,0101 1
0,0000 регистр переносов
0,0010 11 2-1
0,1011= Мн b2
0,1001 11
0,0010 регистр переносов
0,0100 111 2-1
0,1011= Мн b1
0,1101 111
0,0010 регистр переносов
0,0110 1111 2-1
0,1000 1111
Умножение на два разряда множителя одновременно.
Разбиение множителя на группы длиной kразрядов означает переход к новой системе счисления с основанием 2k. Если при этом удается сократить количество элементарных действий, выполняемых при умножении (сложение и сдвиги), то сокращается время умножения. Остановимся более подробно на примере умножения на два разряда одновременно (k=2).
Возможны четыре случая сочетания разрядов множителя: 00, 01, 10, 11. Умножение на каждую из пар разрядов множителя должно выполняться за один такт автоматного времени, то есть в каждом такте умножения должно выполняться не более одного сложения. Рассмотрим умножение на эти пары на примере алгоритма А.
В случае пары 00 необходимо выполнить только сдвиг частичной суммы на два разряда - 2-2.
Для пары 01 выполняется добавление множимого в сумматор с последующим сдвигом суммы на два разряда - 2-2,
При наличии пары 10 возможны следующие варианты действий:
a) 2-2, то есть в этом случае происходят два сложения, что противоречит требованию;
б) 2-2, в этом случае требуется дополнительный регистр для хранения удвоенного Мн;
в) 2-2, что соответствует добавлению к частичной сумме сдвинутого на один разряд влево множимого;
г) 2-1, то есть частичная сумма сдвигается на один разряд вправо до и после добавления к ней множимого.
При умножении на пару 11 (к частичной сумме необходимо добавить утроенное множимое) ее можно представить в виде:
11 = (22- 1)
МН∙ 11= МН∙(22- 1) = МН∙22- МН, то есть в текущем такте к частичной сумме добавляется множимое, взятое со знаком минус. Добавление МН∙22 реализуется путем увеличения на единицу следующей старшей пары разрядов.
В приведенной ниже таблице представлены правила преобразования множителя для системы (0,1,1).
Таблица 1.
-
Анализируемая пара разрядов Мт
перенос из предыдущей пары
Преобразованная пара .
00
0
00
01
0
01
10
0
10
11
0
01
00
1
01
01
1
10
10
1
01
11
1
00
Пример: Мн = 0101
Мт = 11000111
Мтп = 0101001001
Умножение будем осуществлять согласно алгоритму А.
[- Мн]доп = 1.1011
2 Мн = 0.1010
0.0000
1.1011 =Mн
1.1011
1.1110 11 ∙ 2-2
0.1010 = 2Mн
0.1000 11
0.0010 0011 ∙ 2-2
0.0000 100011 ∙ 2-2 (∙ 2-4)
1.1011 =-Mн
1.1011 100011
1.1110 11100011 ∙ 2-2
0.0101 = Mн
0.0011 11100011
Время умножения на два разряда одновременно.
Появление любой из рассматриваемых пар множителей равновероятно. Следовательно, время умножения на два разряда множителя может быть выражено следующим соотношением: = ( n/2 + 1) [0,75∙(tсл+ tсдв) + (0,25∙tсдв], где n – количество разрядов множителя.