- •Саратовский государственный технический университет
- •Функциональные элементы арифметических операций
- •Передаточная характеристика вентиля по напряжению
- •Помехоустойчивость вентиля
- •1.3 Быстродействие вентиля
- •1.4 Типовые логические элементы
- •2.2 Одноразрядный полный сумматор (full adder)
- •1.5 Синтез цифровых схем из логических вентилей
- •Функциональная модель сумматора
- •2.1 Структура опу сумматора
- •Схемы сложения
- •Каскадное сложение
- •Сложение с предвычислением переносов
- •Вычисление типов переносов с помощью параллельной префиксной схемы
- •Полная схема сумматора с предвычислением переносов
- •Блок параллельного вычисления префиксов
- •Сумматор трех n- битовых чисел
- •4. Техническое и программное обеспечение
- •5. Требования безопасности труда
- •6. Методика эксперимента Постановка задачи и исходные данные
- •7. Вопросы для самопроверки
- •Содержание отчета
- •Содержание
- •Моделирование операционных устройств вычислительных машин. Сумматор
- •Вычислительные машины, системы и сети
Вычисление типов переносов с помощью параллельной префиксной схемы
Рассмотрим схему, использующую возможность
параллельных вычислений и позволяющую
за время
вычислить все типы переноса
;
размер схемы Θ(n).
Положим сначала при ![]()
|
|
(10) |
В частности
.
Если
,
то
|
|
(11) |
поскольку операция композиции
ассоциативна.
Ставится задача – вычислить все
.
Схема состоит из одинаковых элементов,
каждый из которых вычисляет композицию
.
Алгоритм решения достаточно прост. На
первом уровне вычисляется композиция
пар ([1,2],[3,4],…), затем четверок и т.д. пока
не дойдем до композиции всех элементов.
Затем необходимо двигаться в обратном
направлении пока не будут получены
значения искомых
.
Полная схема для n=8 показана
на рис.10. Входы
,…,
и выходы
,…,
расположены в листьях дерева, а вход
и
- в корне, так что данные движутся по
дереву сначала от листьев к корню и
потом обратно.
|
|
|
Рис. 10 Общая схема вычисления переноса для n=8 |
Два элемента
в каждом узле работают в разное время
(имеют разную глубину): левый работает
«на пути вверх», а правый – «на пути
вниз».
Используя метод индукции покажем работоспособность схемы.
Предполагая, что поддеревья вычисляют
[i,j-1] и [j,k],
мы получим, что левый элемент
вычисляет [i,k],
так, что вычисления снизу вверх правильны.
При движении вниз предположим, что в
вершину сверху приходит правильное
значение [0,i-1], тогда правый
элемент
должен правильно вычислить значение
[0,j-1]=[0,i-1]
[i,j-1]. Которое
передается по правой ветви; левому
передается неизменное значение [0,i-1].
Если nявляется степенью двойки, то параллельная префиксная схема содержит (2n-1) элементов. Время работы составляетO(logn), поскольку дерево имеет высотуlogn, а данные проходят по нему дважды (вверх и вниз).
Полная схема сумматора с предвычислением переносов
Блок параллельного вычисления префиксов
Блок параллельного вычисления префиксов
(KPG) с индексомiвычисляет по входам
тип переноса
и передает его наверх, а затем, получив
сверху значение
,
вычисляет с помощью сумматора
значениеi- того бита суммы
.
Значения
=0,
=0
и
=kзафиксированы.
Так как все операции, кроме выполняемых параллельной префиксной схемой, требуют времени O(1), общее время работы схемы составляетO(logn). Размер схемы равен Θ(n)
Сумматор трех n- битовых чисел
Для сложения трех n- битовых чиcелx,y,zвычисляются числаu(n- битов) иv(n+1 битов), для которыхx+y+z=u+v.
Схема сумматора представлена на рис.11
-

Рис. 11 Сумматор трех n- битовых чиcел
На рис.11 каждый сумматор
получает на вход![]()
и выдает бит суммы
и бит переноса
.
Полагаем, что
=0.
Сложение трех чисел практически не требует дополнительных затрат по сравнению со сложением двух: глубина увеличивается на несколько единиц.
Пусть
,…,
,
,…,
и
,…,
- триn– разрядных числа.
Схема сложения с запоминанием переносов
(carry-saveadder) находит два числа
,…,
(n- битов) и
,…,
(n+ 1 битов), для которых
![]()
где
![]()
![]()
для
;
бит
всегда равен 0.
Числа
и
могут
быть вычислены за времяO(1)
с помощьюnсумматоров
.
Для сложения чисел
и
используется сумматор с предвычислением
переносов , требующий времениO(logn).
Общее время таким образом равно O(1) +O(logn) илиO(logn) - ускорение в 2 раза по сравнению со схемой, использующей для этой операции два сумматора с предвычислением переносов.
Рассмотренный способ сведения сложения трех чисел к сложению двух используется в быстрых схемах для умножения.

