- •Арифметические и логические основы вычислительной техники учебное пособие
- •Введение
- •Арифметические основы вычислительной техники Системы счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Критерии выбора системы счисления
- •Перевод чисел из одной системы счисления в другую
- •Перевод целых чисел
- •Перевод правильных дробей
- •Перевод чисел из одной системы счисления в другую, основание которой кратно степени 2
- •Кодирование чисел
- •Переполнение разрядной сетки
- •Модифицированные коды
- •Машинные формы представления чисел
- •Погрешность выполнения арифметических операций
- •Округление
- •Нормализация чисел
- •Последовательное и параллельное сложение чисел
- •Сложение чисел с плавающей запятой
- •Машинные методы умножения чисел в прямых кодах
- •Ускорение операции умножения
- •Умножение с хранением переносов
- •Умножение на два разряда множителя одновременно
- •Умножение на четыре разряда одновременно
- •Умножение в дополнительных кодах
- •Умножение на два разряда множителя в дополнительных кодах
- •Матричные методы умножения
- •Машинные методы деления
- •Деление чисел в прямых кодах
- •Деление чисел в дополнительных кодах
- •Методы ускорения деления
- •Двоично-десятичные коды
- •Суммирование чисел с одинаковыми знаками вBcd-коде
- •Суммирование чисел с разными знаками вBcd-коде
- •Bcd-коды с избытком 3
- •Bcd-код с избытком 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
1,0001 111
0,1000 1111 2-1
Умножение на два разряда множителя одновременно
Разбиение множителя на группы длиной 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 реализуется путем увеличения на единицу следующей старшей пары разрядов.
В табл.1 представлены правила преобразования множителя для системы (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
0.0000 1111100011 ∙ 2-2
Время умножения на два разряда множителя одновременно
Появление любой из рассматриваемых пар множителей равновероятно. Следовательно, время умножения на два разряда множителя может быть выражено следующим соотношением: = ( n/2 + 1) [0,75∙(tсл+ tсдв) + (0,25∙tсдв], где n – количество разрядов множителя.