
- •Арифметические и логические основы вычислительной техники учебное пособие
- •Введение
- •Арифметические основы вычислительной техники Системы счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Критерии выбора системы счисления
- •Перевод чисел из одной системы счисления в другую
- •Перевод целых чисел
- •Перевод правильных дробей
- •Перевод чисел из одной системы счисления в другую, основание которой кратно степени 2
- •Кодирование чисел
- •Переполнение разрядной сетки
- •Модифицированные коды
- •Машинные формы представления чисел
- •Погрешность выполнения арифметических операций
- •Округление
- •Нормализация чисел
- •Последовательное и параллельное сложение чисел
- •Сложение чисел с плавающей запятой
- •Машинные методы умножения чисел в прямых кодах
- •Ускорение операции умножения
- •Умножение с хранением переносов
- •Умножение на два разряда множителя одновременно
- •Умножение на четыре разряда одновременно
- •Умножение в дополнительных кодах
- •Умножение на два разряда множителя в дополнительных кодах
- •Матричные методы умножения
- •Машинные методы деления
- •Деление чисел в прямых кодах
- •Деление чисел в дополнительных кодах
- •Методы ускорения деления
- •Двоично-десятичные коды
- •Суммирование чисел с одинаковыми знаками вBcd-коде
- •Суммирование чисел с разными знаками вBcd-коде
- •Bcd-коды с избытком 3
- •Bcd-код с избытком 6 для одного из слагаемых
- •Система счисления в остаточных классах (сок)
- •Представление отрицательных чисел в сок
- •Контроль работы цифрового автомата
- •Некоторые понятия теории кодирования
- •Обнаружение и исправление одиночных ошибок путем использования дополнительных разрядов
- •Коды Хемминга
- •Логические основы вычислительной техники Двоичные переменные и булевы функции
- •Способы задания булевых функций
- •Основные понятия алгебры логики
- •Основные законы алгебры логики
- •Формы представления функций алгебры логики
- •Системы функций алгебры логики
- •Минимизация фал
- •Метод Квайна
- •Метод Блейка - Порецкого
- •Метод минимизирующих карт Карно (Вейча)
- •Б в Рис. 19. Таблица истинности и карта Карно
- •Минимизация конъюнктивных нормальных форм
- •Минимизация не полностью определенных фал
- •Кубическое задание функций алгебры логики
- •Метод Квайна −Мак-Класки
- •Алгоритм извлечения (Рота)
- •Минимизация фал методом преобразования логических выражений
- •Применение правил и законов алгебры логики к синтезу некоторых цифровых устройств Синтез одноразрядного полного комбинационного сумматора
- •Синтез одноразрядного комбинационного полусумматора
- •Синтез одноразрядного полного комбинационного сумматора на двух полусумматорах
- •Синтез одноразрядного комбинационного вычитателя
- •Объединенная схема одноразрядного комбинационного сумматора-вычитателя
- •Триггер со счетным входом как полный одноразрядный сумматор
- •Введение в теорию конечных автоматов Основные понятия теории автоматов
- •Способы задания автоматов
- •Структурный автомат
- •Память автомата
- •Канонический метод структурного синтеза автоматов
- •Принцип микропрограммного управления
- •Граф-схема алгоритма
- •Пример синтеза мпа по гса
- •Синтез мпа Мили по гса
- •Синхронизация автоматов
- •Литература
- •220013, Минск, п.Бровки, 6
Какую работу нужно написать?
Матричные методы умножения
Кроме рассмотренных методов ускоренного умножения существуют методы умножения, основанные на использовании матриц промежуточных результатов.
Пусть имеем сомножители:
Мн = А = аn ... a2 a1
Мт
= B = bn
... b2
b1
Рассмотрим схему умножения чисел согласно алгоритму Б. Данная схема умножения может быть представлена в виде матрицы (табл.3).
Каждый
элементai
bj (
i, j = 1, n)принимает значение 0 или 1.
Произведение A∙B может
быть получено, если суммировать элементы
матрицы (по диагонали).
+
Для суммирования по столбцам могут быть использованы счетчики. Однако при достаточно большом значении величины nпотребуются счетчики с большим числом входов, что существенно увеличит время сложения. Но этот принцип умножения может быть реализован на устройствах, имеющих не более трех входов. В качестве их могут быть использованы одноразрядные двоичные сумматоры и полусумматоры.
На рис. 10 приведена структурная схема устройства умножения для реализации матричного алгоритма.
Реализация методов матричного умножения требует большего количества оборудования, чем метод последовательного умножения, и дает больший выигрыш во времени. В связи с увеличением степени интеграции элементной базы ограничения по количеству оборудования становятся не столь строгими.
Машинные методы деления
Деление - простое многократное вычитание делителя вначале из делимого, затем из остатков. Введем обозначения, используемые ниже: Дм - делимое, Дт - делитель, Аi– очередной (i-й) остаток, Чт – частное. Известны два основных подхода к операции деления:
с восстановлением остатков;
без восстановления остатков.
Независимо от метода деления после
каждого вычитания делителя формируется
цифра частного. Операция деления является
операцией, дающей не всегда точный
результат. Поэтому признаком окончания
операции деления
может быть достижение заданной точности (по числу сдвиговых сигналов). Если при выполнении деления получен нулевой i-й остаток, то деление прекращается и в оставшиеся разряды частного записываются нули. Первым шагом деления двух чисел машиной является пробное вычитание, выявляющее соотношение между делимым и делителем. При делении в случае переполнения следует: для чисел с фиксированной запятой процесс остановить, с плавающей запятой продолжить до конца, а потом, после получения последней n-й цифры частного, число сдвигается вправо на один разряд с добавлением единицы к порядку, равному разности порядков делимого и делителя.
Деление чисел в прямых кодах
Алгоритмделения с восстановлением остаткасостоит в следующем.
1. Выполняется пробное вычитание с формированием первого остатка A1=[Дм]доп+[-Дт]доп. Далее, если А1< 0, то в первый разряд, расположенный слева от запятой, заносится ноль (0), иначе единица (1) – переполнение и переход к пункту 5.
2. Если Аi< 0, то восстанавливаем предыдущий остаток Ai=Ai+[Дт]доп.
3. Формирование очередного остатка. Ai+1=Ai∙2+[-Дт]доп если Ai+1<0, то в очередной разряд частного справа от запятой записывается ноль (Чт(n)=0), иначе записывается единица (Чт(n)=1).
4. Если достигнута заданная точность частного или получен нулевой остаток Ai+1, то процесс деления окончен и осуществляется переход к пункту 5, иначе переходим к пункту 2 алгоритма.
5. Окончание алгоритма.
Из рассмотренного алгоритма видно следующее:
1) необходимо затрачивать время на восстановление остатка;
2) процесс деления нерегулярный, в зависимости от делимого и делителя
частное будет содержать нулей больше или меньше, и чем больше нулей, тем больше требуется времени на восстановление остатков.
Рассмотрим пример деления чисел.
Как видно из примера, для получения остатка Аi+2необходимо выполнить
Аi+2= ( Ai+1 + ДT) ∙ 21- ДT= Ai+1∙ 21+ 2ДT- ДT= Ai+1∙ 21+ ДT
Из этого следует, что восстанавливать остаток необязательно. Достаточно сдвинуть полученный отрицательный остаток влево на один разряд и добавить делитель. Это является основой алгоритма для выполнения деления без восстановления остатка.
Алгоритмделения без восстановленияостатка.
1. Выполняется пробное вычитание с формированием первого остатка A1=[Дм]доп+[-Дт]доп. Далее, если А1< 0, то в первый разряд, расположенный слева от запятой, заносится ноль (0), иначе единица (1) – что является признаком переполнение и ос4уществляется переход к пункту 5.
2. Формирование очередного остатка. Если Аi< 0, то Ai+1=Ai∙2+[Дт]доп, иначеAi+1=Ai∙2+[-Дт]доп.
3. Если Аi+1< 0, то в очередной разряд частного справа от запятой записывается ноль (Чт(n)=0), иначе записывается единица (Чт(n)=1).
4. Если достигнута заданная точность частого или получен нулевой остаток Ai+1, то процесс деления окончен и осуществляется переход к пункту 5, иначе переходим к пункту 2 алгоритма.
5. Окончание алгоритма.