ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2021

Просмотров: 2466

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

6 1 6 Глава 15. Потоковые и редукционные вычислительные системы

Рис. 15.3. Движение маркеров при вычислении А/В + В х С: а — после подачи входных данных;

б — после копирования;

 в

 — после умножения и деления; г — после суммирования

-двухвходовая операционная вершина

 — узел с двумя входами и одним выходом.

Операции производятся над данными, поступающими с левой и правой вход-
ных дуг, а результат выводится через выходную дугу;

- одновходовая операционная вершина —

 узел с одним входом и одним выходом.

Операции выполняются над входными данными, результат выводится через
выходное ребро;

- вершина ветвления —

 узел с одним входом и двумя выходами. Осуществляет

копирование входных данных и их вывод через две выходные дуги. Путем ком-
бинации таких узлов можно строить вершины ветвления на

 т

 выходов;


background image

Вычислительные системы с управлением вычислениями от потока данных  6 1 7

Рис. 15.4. Примитивы узлов:

 а —

 двухвходовая операционная вершина;

 б —

 одновходовая

операционная вершина;

 в

 — вершина ветвления; г— вершина слияния; д — TF-коммутатор;

е — Т-коммутатор; ж — F-коммутатор;

 з —

 вентиль;

 и

 — арбитр

-

 вершина слияния —

 узел с двумя входами и одним выходом. Данные поступают

только с какого-нибудь одного из двух входов. Входные данные без изменения

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

с

 т

 входами;

- вершина управления

 — существует в перечисленных ниже трех вариантах:

- TF

-коммутатор —

 узел с двумя входами и одним выходом. Верхний вход —

это дуга данных, а правый — дуга управления (логические данные). Если

значение правого входа истинно (Т — True), то входные данные выводятся
через левый выход, а при ложном значении на правом входе (F — False) дан-

ные следуют через правый выход;

D

 вентиль —

 узел с двумя входами и одним выходом. Верхний вход — дуга дан-

ных, а правый — дуга управления. При истинном значении на входе управ-

ления данные выводятся через выходную дугу;

-

 арбитр —

 узел с двумя входами и двумя выходами. Все дуги являются дуга-

ми данных. Первые поступившие от двух входов данные следуют через ле-
вую дугу, а прибывшие впоследствии — через правую выходную дугу. Акти-
вация вершины происходит в момент прихода данных с какого-либо одного

входа.

Процесс обработки может выполняться аналогично конвейерному режиму: пос-

ле обработки первого набора входных сигналов на вход графа может быть подан
второй и т. д. Отличие состоит в том, что промежуточные результаты (токены)
первого вычисления не обрабатываются совместно с промежуточными результа-
тами второго и последующих вычислений. Результаты обычно требуются в после-

довательности использования входов.

Существует множество случаев, когда определенные вычисления должны по-

вторяться

 с

 различными данными, особенно в программных циклах. Программ-


background image

618 Глава 15. Потоковые и редукционные вычислительные системы

мые циклические процессы в типовых языках программирования могут быть вос-
произведены путем подачи результатов обратно на входные узлы. При формиро-
вании итерационного кода часто применяются переменные цикла, увеличиваемые

после каждого прохода тела цикла. Последний завершается, когда переменная цикла

достигает определенного значения. Метод применим и при потоковой обработке,

как это показано на рис. 15.5.

Рис. 15.5. Циклы при потоковой обработке

Все известные потоковые вычислительные системы могут быть отнесены к двум

основным типам:

 статическим

 и

 динамическим.

 В свою очередь, динамические

потоковые ВС обычно реализуются по одной из двух схем:

 архитектуре с поме-

ченными токенами

 и

 архитектуре с явно адресуемыми токенами.

Архитектура потоковых вычислительных систем

В потоковых ВС программа вычислений соответствует потоковому графу, кото-

рый хранится в памяти системы в виде таблицы. На рис. 15.6 показаны пример
графа потоковой программы и содержание адекватной ему таблицы [2].

Принципиальная схема потоковой вычислительной системы (рис. 15.7) вклю-

чает в себя блок управления (CS), где хранится потоковый граф, который исполь-
зуется для выборки обрабатываемых команд, а также функциональный блок (FS),
выполняющий команду, переданную из CS, и возвращающий результат ее выпол-
нения в CS.

Блоки CS и FS работают асинхронно и параллельно, обмениваясь многочислен-

ными

 пакетами команд

 и результатами их выполнения. В

 пакете результата,

 по-

ступающем из блока FS, содержится значение результата (val) и адрес команды,

для которой пакет предназначен (des). На основании этого адреса блок CS проверяет

возможность обработки команды. Команда может быть однооперандной или

двухоперандной. В последнем случае необходимо подтверждение наличия обоих


background image

Вычислительные системы с управлением вычислениями от потока данных  6 1 9

Рис. 15.6. Пример формы хранения потоковой программы: а — потоковый граф;

б

 — память функционального блока

Рис. 15.7. Структура потоковой вычислительной системы

операндов (орг 1 и орг 2), и для этого устанавливается специальный признак. Блок
управления загрузкой (LC) каждый раз при активировании определенной функ-
ции загружает из памяти программ код этой функции.

Для повышения степени параллелизма блоки CS и F5 строятся по модульному

принципу, а графы потоковой программы распределяются между модулями с по-

мощью мультиплексирования [89].


background image

6 2 0 Глава 15. Потоковые и редукционные вычислительные системы

Статические потоковые вычислительные системы

Статическая потоковая архитектура,

 известная также под названием «единствен-

ный-токен-на-дугу» (single-token-рег-агс dataflow), была предложена Деннисом

в 1975 году [89]. В ней допускается присутствие на ребре графа не более чем одного
токена. Это выражается в правиле активации узла [90]: вершина активируется, когда
на всех ее входных дугах присутствует по токену и ни на одном из ее выходов токенов
нет. Для указания вершине о том, что ее выходной токен уже востребован последую-
щим узлом (узлами) графа, в ВС обычно прибегают к механизму подтверждения с
квитированием связи, как это показано на рис. 15.8. Здесь процессорами в ответ на
инициирование узлов графа посылаются специальные контрольные токены.

Рис. 15.8. Механизм подтверждения с квитированием

Типовую статическую потоковую архитектуру иллюстрирует рис. 15.9.

Рис. 15.9, Структура процессорного элементе типовой статической потоковой системы

Память действий

 (узел потоковой машины, хранящий потоковый граф и цир-

кулирующий на нем поток данных) состоит их двух блоков памяти: команд/дан-
ных и управляющей памяти. Вершина графа представлена в памяти команд/дан-
ных кадром, содержащим следующие поля:

- код операции;
- операнд 1;


Смотрите также файлы