46831 (597302), страница 2
Текст из файла (страница 2)
Рис. 15.15. Структурная схема вычитателя с использованием полных сумматоров
Инверторы обеспечивают преобразования двоичного числа в форму дополнения до 1. Сумматоры складывают двоичные числа
и
. Циклический перенос осуществляется с выхода
сумматора старшего разряда на вход
сумматора единиц. Разность двоичных чисел отображается на выходном индикаторе.
Рассмотрим схему, которая позволяет производить операции и сложения и вычитания двоичных чисел (рис. 15.16).
Рис. 15.16. Структурная схема 3-разрядного сумматора вычитателя
В схеме используются 3 логических элемента исключающее ИЛИ. При подаче логического 0 на вход элемента исключающее ИЛИ информационные биты каждого разряда двоичного числа проходом через этот элемент без инверсии и происходит сложение двух чисел :
и
. Логический 0, кроме этого блокирует цепь циклического переноса, т. к. 0 поступает на один из входов элемента И (рис. 15.16). В данном случае схема работает как 3-разрядный двоичный сумматор.
Для того, чтобы схема работала как 3-разрядный вычитатель нужно на управляющий вход подать логическую 1. В этом случае элементы исключающее ИЛИ работают как инверторы и на входах сумматоров получим . Кроме этого, логическая 1 открывает логический элемент И, в результате чего, сигнал с выхода
последнего сумматора поступает по цепи циклического переноса на вход
сумматора единиц. На выходном индикаторе отобразится разность двух двоичных чисел.
Суммирующее устройство последовательного действия
В параллельном сумматоре для каждого двоичного разряда нужен отдельный полный сумматор. При другом способе сложения последовательном, требуется только один полный сумматор. На рис. 15.17 показан принцип работы сумматора последовательного действия, которая помимо полного сумматора включает два регистра сдвига (А и В) и регистр суммы. Регистры сдвига А и В связаны со входами А и В полного сумматора.
Рис. 15.17. Принцип работы суммирующего устройства последовательного действия
Процесс последовательного суммирования состоит из нескольких шагов, которые отображены на рис. 15.17. На первом шаге регистры А и В загружаются двоичными числами и
. С приходом первого тактового импульса складываются значения разряда единиц (
и
) и сумма
заносится в выходной регистр, который связан с выходом У полного сумматора. С приходом второго тактового импульса складываются
значения разряда двоек ( и
) и перенос, который поступает на вход
сумматора от триггера–задержки. Результат
заносится в выходной регистр, при этом предыдущая сумма
сдвигается вправо. С приходом третьего тактового импульса происходит сложение
и переноса
. Результат
помещается в выходной регистр. Таким образом после трех тактовых импульсов в регистре суммы находится результат – двоичное число
. Следует заметить, что в данной схеме тактовые входы всех регистров (двух входных и выходного) и триггера с задержкой связаны между собой. Кроме этого, в каждый момент времени складываются только два бита информации. Для сложения двух 3-разрядных чисел следует использовать только три тактовых импульса, поскольку большее число импульсов приведет к сдвигу двоичного числа в регистре суммы и на индикаторе будет неверный результат.
Двоичное умножение
В двоичной системе счисления правила умножения очень просты. Они показаны на рис. 15.18.
Рис. 15.18. Правила двоичного умножения
Рассмотрим пример на умножение двоичных чисел 111 и 101 (рис. 15.19).
Рис. 15.19. Пример на двоичное сложение
Сначала множимое (111) умножается на значения разряда единиц множителя. В результате получается первое частичное произведение, равное 111. Затем множимое умножается на значение разряда двоек множителя, при этом младший разряд второго частичного произведения отбрасывается. На третьем этапе множимое умножается на значение разряда четверок множителя. В результате получается третье частичное произведение 11100, но записывается это число как 111. В конце, первое, второе и третье частичные произведения складываются.
На рис. 15.20 показан еще один пример на двоичное умножение.
Рис. 15.20. Пример на двоичное умножение
Рассмотрим способы, которыми можно реализовать умножение двоичных чисел. Первый способ умножения – это многократно повторяемая операция сложения. Рассмотрим пример. Допустим необходимо найти произведение десятичных чисел 6 и 4. Произведением этих чисел является число 24. Этот же результат можно получить, используя операцию сложения: 6+6+6+6=24. Таким образом, операцию умножения можно заменить многократным сложением.
Рассмотрим схему устройства, которое позволяет реализовать такой способ умножения (рис. 15.21).
Рис. 15.21. Структурная схема операции умножения с использованием многократно повторяемого сложения
Рассмотрим процесс умножения двоичного числа 110 (десятичное 6) на двоичное число 100 (десятичное 4). Число 110 загружается в регистр множимого. Множитель (100) содержится в вычитающем счетчике. Произведение накапливается в регистре произведения.
В табл. 15.5 показан пошаговый процесс умножения двоичных чисел.
Таблица 15.5. Пошаговый процесс умножения двоичных чисел путем многократного сложения
Сначала множимое и множитель загружаются в регистр множимого и вычитающий счетчик множителя соответственно, а регистр произведения обнуляется. После первого шага в регистре произведения появляется число 00110, а множитель уменьшается на 1. После второго шага в регистре произведения оказывается сумма множимого (110) и числа 00110, множитель уменьшается на 1. Таким образом процесс завершается после четырех шагов, когда счетчик множителя содержит 000, а регистр произведения 11000 (десятичное число 24). Но этот способ не всегда удобен. Например, для нахождения произведения 56*12 нужно определить сумму 12 слагаемых, каждое из которых равно 56. Такой процесс вычисления занимает слишком много времени.
Вторым способом умножения двоичных чисел является способ сложения со сдвигами.
Вернемся к примеру, показанному на рис. 15.19. В этом примере двоичное число 111 умножается на двоичное число 101. При рассмотрении данного примера можно сделать следующие выводы:
1) Частичное произведение всегда равно 000, если множитель равен 0, и равно множимому, если множитель равен 1.
2) Число разделов в регистре произведения должно быть в два раза больше числа разделов в регистре множимого.
3) При сложении первое частичное произведение сдвигается на одну позицию (разряд) вправо (по отношению ко второму произведению).
На основе сделанных выводов можно построить схему для умножения двоичных чисел (рис. 15.22).
Рис. 15.22. Структурная схема умножителя с использованием операций сложения и сдвига
В исходном состоянии множимое (111) загружается в регистр, регистр-накопитель очищен (установлен в состояние 0000) и множитель (101) загружен в регистр. При этом регистр-накопитель и регистр-множителя составляют единый регистр (рис. 15.22.). Рассмотрим пошаговый процесс умножения двоичных чисел.
1) Загрузка исходных данных в регистры.
2) Сложение содержимого регистра-накопителя и регистра-множимого, инициируемое логической 1 младшего разряда на управляющую шину.
3) Сдвиг содержимого регистра-накопителя и регистра-множителя на одну позицию вправо. При этом младший разряд регистра-множителя теряется.
4) Регистр-множитель подает логический 0 на управляющую шину. Этот сигнал блокирует сумматор и сложение не производится.
5) Сдвиг содержимого регистра – накопителя и регистра – множителя на одну позицию вправо.
6) Сложение содержимого регистра – накопителя и регистра – множимого, инициируемое логической 1 младшего разряда регистра – множителя на управляемую шину.
7) Сдвиг содержимого регистра – накопителя и регистра – множителя на одну позицию вправо.
В результате этих шагов произведение (100011) находится сразу в двух регистрах (табл. 15.6).
Таблица 15.6. Пошаговый процесс умножения с использованием операций сложения и сдвига
В таблицах 15.5 – 15.6 показаны принципы умножения двумя способами: путем многократного сложения и путем сложений со сдвигами. При этом микропроцессоры могут и не содержать в своих АЛУ умножителей. Конкретный способ умножения можно запрограммировать. Таким образом задавая процессору программу, он выполнит последовательность операций, которая обеспечит умножение двоичных чисел. Благодаря этому существенно уменьшается число электронных схем в центральном процессоре.
15.10. Сложение и вычитание чисел, представленных в дополнительном коде
До сих пор сложение и вычитание производилось над положительными числами. Однако микропроцессоры должны обрабатывать не только положительные, но и отрицательные числа. Используя дополнительный код числа, можно задать как знак числа, так и его абсолютную величину.