- •1. Понятие системы счисления
- •2. Перевод чисел из одной системы счисления в другую
- •3. Представление чисел с фиксированной и плавающей запятой в эвм.
- •4. Форматы данных, прямой, обратный, дополнительный код.
- •5. Сложение (вычитание) двоичных чисел с фиксированной запятой.
- •6 Арифметика чисел с плавающей запятой.
- •7 Умножение двоичных чисел с фиксированной запятой
- •8 Метод пропуска такта суммирования
- •9. Деление в прямых кодах.
- •10. Деление в доп. Кодах.
- •11. Ускоренные методы операции деления.
- •12. Извлечение квадратного корня из двоичных чисел.
- •0,01Ххх..Х
- •14. Особенности выполнения операции сложения в d-кодах.
- •15. Получение дополнительного кода чисел в d-кодах.
- •16. Операция умножения чисел в d-кодах.
- •17. Деление в d-кодах
- •19. Свойства бинарных отношений.
- •20. Толерантность, эквивалентность, отношения порядка.
- •25. Специальные классы булевых функций
- •26. Днф.
- •27 Скнф.
- •28 Метод Квайна-Мак-Класки
- •31.1 Минизация систем переключательных функций
8 Метод пропуска такта суммирования
Данный метод применим к любой схеме выполнения операции умножения. Сущность его заключается в том, что если очередной анализируемый разряд множителя равен нулю, то такт суммирования пропускается и без задержки на время суммирования Ts вырабатывается устройством управления очередной сигнал сдвига, обеспечивающий сдвиг на один разряд множителя и накопленной суммы частичных произведений или множимого в зависимости от схемы умножения. Если принять, что в двоичном коде множителя в любом разряде с равной вероятностью может находиться как 0, так и 1, то среднее кол-во тактов суммирования при перемножении двух n разрядных чисел сокращается вдвое
Метод расшифровки и одновременного умножения на два разряда множителя
Метод основан на одновременном сдвиге в каждом цикле вычисления множителя на два разряда вправо
(в сторону младших разрядов), анализе двух сдвинутых младших разрядов множителя и выполнении при этом не более одной операции сложения. Одновременная расшифровка и умножение более чем на два разряда множителя не дает заметного уменьшения времени выполнения операции умножения. При разбиении множителя, начиная с младших его разрядов, на группы по два разряда в каждой возможны следующие равновероятные комбинации: 00; 01; 10; 11, которые можно выразить следующим образом: 00=0; 01=20; 10=21;11=22-20. В зависимости от результатов анализа пары разрядов множителя необходимо выполнить следующие операции: при комбинации 00 произвести сдвиг на два разряда вправо предшествующей суммы частичных произведений; при комбинации 01 к предшествующей сумме частичных произведений прибавить множимое, и новую сумму частичных произведений сдвинуть на два разряда вправо; при комбинации 10 к предшествующей сумме частичных произведений прибавить удвоенное, то есть сдвинутое на один разряд влево множимое, и новую сумму частичных произведений сдвинуть на два разряда вправо; при комбинации 11 из предшествующей суммы частичных произведений вычесть множимое, и новую сумму частичных произведений сдвинуть на два разряда вправо. В самом деле, комбинация 11=21+20 может быть представлена следующим образом: 11=22-20=100-01. При таком представлении следует, что отрицательный член правой части рассматриваемого равенства должен учитываться путем вычитания множимого из накопленной суммы частичных произведений, а член 100 представляет собой единицу младшего разряда следующей анализируемой пары разрядов множителя и должен учитываться при её расшифровке. Для этого данная единица должна запоминаться в схеме анализа. При обработке следующей пары разрядов множителя эта запомненная единица учитываться путем прибавления к младшему разряду этой пары по обычным правилам:
00+01=01;01+01=10; 10+01=11;11+01=00+100
Очевидно, что в последнем случае старший член правой части 100 представляет собой единицу младшего разряда следующей анализируемой пары разрядов множителя. Для пояснения описанного метода рассмотрим пример выполнения операции умножения при анализе одновременно двух разрядов множителя. Пусть множимое [X]пр = 0,11110101, а
множитель [Y]пр = 0,100001101. Будем считать, что множимое может передаваться в сумматор со сдвигом на один разряд влево. Тогда для исключения переполнения разрядной сетки сумматора добавим в него перед знаковыми разрядами один дополнительный разряд, а для округления результата добавим в сумматор еще один младший дополнительный разряд. Сложение будем производить в модифицированном обратном коде. Полагаем, что в сумматоре возможен сдвиг за один такт на два разряда вправо. С учетом сделанных оговорок последовательность действий в сумматоре можно представить следующим образом.
В соответствии с поставленной выше задачей выполнения операции умножения одновременно на два разряда множителя представим операнды в следующем виде: |X|=11110101; |Y|=y8 y7 y6 y5 y4 y3 y2 y1 = 10001101. Схема реализации операции ускоренного умножения представлена ниже. Легко проверить, что результат умножения сомножителей X и Y по обычной схеме дает аналогичный результат, то есть Z=X*Y = 0,10000111.