- •Саратовский государственный технический университет
- •Функциональные элементы арифметических операций
- •Передаточная характеристика вентиля по напряжению
- •Помехоустойчивость вентиля
- •1.3 Быстродействие вентиля
- •1.4 Типовые логические элементы
- •1.5 Синтез цифровых схем из логических вентилей
- •Функциональная модель сумматора
- •2.1 Структура опу сумматора
- •2.2 Одноразрядный полный сумматор (full adder)
- •Схемы сложения
- •Каскадное сложение
- •Сложение с предвычислением переносов
- •Вычисление типов переносов с помощью параллельной префиксной схемы
- •Полная схема сумматора с предвычислением переносов
- •Блок параллельного вычисления префиксов
- •Сумматор трех 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 раза по сравнению со схемой, использующей для этой операции два сумматора с предвычислением переносов.
Рассмотренный способ сведения сложения трех чисел к сложению двух используется в быстрых схемах для умножения.