Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
36
Добавлен:
12.02.2015
Размер:
3.47 Mб
Скачать
    1. Вычисление типов переносов с помощью параллельной префиксной схемы

Рассмотрим схему, использующую возможность параллельных вычислений и позволяющую за время вычислить все типы переноса; размер схемы Θ(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, а данные проходят по нему дважды (вверх и вниз).

    1. Полная схема сумматора с предвычислением переносов

      1. Блок параллельного вычисления префиксов

Блок параллельного вычисления префиксов (KPG) с индексомiвычисляет по входамтип переносаи передает его наверх, а затем, получив сверху значение, вычисляет с помощью сумматоразначениеi- того бита суммы. Значения=0,=0 и=kзафиксированы.

Так как все операции, кроме выполняемых параллельной префиксной схемой, требуют времени O(1), общее время работы схемы составляетO(logn). Размер схемы равен Θ(n)

      1. Сумматор трех 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 раза по сравнению со схемой, использующей для этой операции два сумматора с предвычислением переносов.

Рассмотренный способ сведения сложения трех чисел к сложению двух используется в быстрых схемах для умножения.

Соседние файлы в папке лабораторные