
- •Вычислительная модель потоковой обработки
- •2. Архитектура потоковых вычислительных систем
- •3. Статические потоковые вычислительные системы
- •4. Динамические потоковые вычислительные системы
- •5. Архитектура потоковых систем с помеченными токенами
- •6. Архитектура потоковых систем с явно адресуемыми токенами
- •7. Макропотоковые вычислительные системы
- •8. Гиперпотоковая обработка
- •9. Вычислительные системы с управлением вычислениями по запросу
- •Контрольные вопросы
2. Архитектура потоковых вычислительных систем
В потоковых ВС программа вычислений соответствует потоковому графу, который хранится в памяти системы в виде таблицы. На рис. 14.6 показаны пример графа потоковой программы и содержание адекватной ему таблицы.
Рис. 14.6. Пример формы хранения потоковой программы: а– потоковый граф;б– память функционального блока
Принципиальная схема потоковой ВС (рис. 14.7) включает в себя блок уп-равления (CS), где хранится потоковый граф, который используется для выбор- ки обрабатываемых команд, а также функциональный блок (FS), выполняющий команду, переданную изCS, и возвращающий результат ее выполнения вCS.
Рис. 14.7. Структура потоковой вычислительной системы
Блоки CSиFSработают асинхронно и параллельно, обмениваясь много-численнымипакетами команди результатами их выполнения. Впакете результата, поступающем из блокаFS, содержится значение результата (val) и адрес команды, для которой пакет предназначен (des). На основании этого ад- реса блокCSпроверяет возможность обработки команды. Команда может быть однооперандной или двухоперандной. В последнем случае необходимо под-тверждение наличия обоих операндов (opr1 иopr2), для чего устанавливается специальный признак. Блок управления загрузкой (LC) каждый раз при акти-вировании определенной функции загружает из памяти программ код этой функции.
Для повышения степени параллелизма блоки CSиFSстроятся по мо-дульному принципу, а графы потоковой программы распределяются между мо-дулями с помощью мультиплексирования.
3. Статические потоковые вычислительные системы
Статическая потоковая архитектура, известная также под названием «единственный-токен-на-дугу» (single-token-per-arcdataflow), была предложена Деннисом в 1975 году. В ней допускается присутствие на ребре графа не бо- лее чем одного токена. Это выражается в правиле активации узла: вершина активируется, когда на всех ее входных дугах присутствует по токену и ни на одном из ее выходов токенов нет. Для указания вершине о том, что ее выход- ной токен уже востребован последующим узлом графа, используется механизм подтверждения с квитированием связи (рис. 14.8). Его суть состоит в посылке процессорами в ответ на инициирование узлов графа специальных контроль- ных токенов.
Рис. 14.8. Механизм подтверждения с квитированием
Типовая статическая потоковая архитектура представлена на рис. 14.9.
Рис. 14.9. Структура процессорного элемента типовой статической потоковой системы
Память действий– это узел потоковой машины, хранящий потоковый граф и циркулирующий на нем поток данных. Он состоит из двух блоков па- мяти: команд/данных и управляющей памяти. Вершина графа представлена в памяти команд/данных кадром, содержащим следующие поля:
код операции;
операнд 1;
…
операнд N;
вершина/дуга 1;
…
вершина/дуга K.
Каждому кадру в памяти команд/данных соответствует кадр в управляю-щей памяти, содержащий биты наличия для всех операндов и всех полей «вершина/дуга». Бит наличия операнда устанавливается в единицу, если этот операнд доступен, т.е. если токен, содержащий данный операнд, уже поступил по входной дуге графа. Для поля «вершина/дуга» установленный бит наличия означает, что выходная дуга, ассоциированная с данным полем, не содержит токена. Вершина графа, описанная в памяти команд/данных, может быть акти-вирована, т.е. операция может быть выполнена, если все биты наличия в соот-ветствующем кадре памяти управления установлены в единицу. Когда данная ситуация распознается блоком обновления, он помещает пакет команды в оче-редь команд. Опираясь на очередь команд и содержимое памяти действий, блок выборки составляет пакет операции и направляет его в один из функциональ- ных блоков. После выполнения требуемой операции функциональный блок соз-дает пакет результата и передает его в блок обновления, который в соответст- вии с полученным результатом изменяет содержимое памяти действий.
Основное преимущество статической модели потоковых вычислений за-ключается в упрощенном механизме обнаружения активированных узлов.
Недостатки статической модели:
не допускает параллельного выполнения независимых итераций цикла;
колебания трафика токенов;
отсутствие в современных языках программирования поддержки описан-ного режима обработки данных.
Архитектуру первой системы, строго соответствующей модели потоковых вычислений типа «единственный-токен-на-дугу», предложил Деннис (рис. 14.10).
Рис. 14.10. Статическая потоковая архитектура по Деннису
Система представляет собой кольцо из процессорных элементов и эле-ментов памяти, в котором информация передается в форме пакетов. Процес-сорные элементы получают пакеты действий(activitytemplates) в виде: Код операции • Операнды • Адресат, где точка обозначает операцию составления целого слова из его частей. «Код операции» определяет подлежащую выполне-нию операцию, «Операнды» – используемые в операции числа, а «Адресат» – указывает место, куда должен быть направлен результат операции. При этом в полях операндов задаются не адреса ячеек памяти, а непосредственно числа, которые должны участвовать в операции. Преимущество такого подхода состо- ит в том, что в каждый момент времени операнды могут быть использованы только одной выбранной вершиной, а недостаток – невозможность включения в команду в качестве операндов сложных структур данных, даже простых векторов и массивов.
Пакет результатаимеет вид: Значение • Адресат, где в поле «Значение» содержится значение результата, полученное после выполнения операции. Эти пакеты передаются по маршрутизирующей сети вячейки командыблока па- мяти, указанные в их поле «Адресат». Когда получены все входные пакеты (токены), ячейка команды порождает пакет операции. Обычно для генерации пакета операции ячейке команды нужны два входных пакета с операндами. За- тем пакет операции маршрутизируется к одному из процессорных элементов (ПЭ). Если все процессорные элементы идентичны (гомогенная система), то может быть выбран любой свободный ПЭ. В негомогенных системах со спе-циализированными ПЭ, способными выполнять только определенные функции, выбор нужного ПЭ производится по коду операции, заключенном в пакете операции.