Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВС Лекция 14.doc
Скачиваний:
176
Добавлен:
25.03.2015
Размер:
457.73 Кб
Скачать

7. Макропотоковые вычислительные системы

Рассмотренный ранее механизм обработки с управлением от потока дан-ных функционирует на уровне команд и относится к потоковой обработке низкого уровня(fine-graindataflow). Данному подходу сопутствуют большие из-держки при пересылке операндов. Для уменьшения коммуникационных издер-жек необходимо применять потоковую обработку на процедурном уровне, т.е.укрупненную потоковую илимакропотоковуюобработку (multithreading).

Макропотоковая модель совмещает локальность программы, характерную для фон-неймановской модели, с толерантностью к задержкам на переключение задач, свойственной потоковой архитектуре. Это достигается за счет того, что вершина графа представляет собой не одну команду, а последовательность из нескольких команд, называемых нитью(thread). По этой причине макропото- ковая организация часто называетсякрупнозернистой потоковой обработкой(coarse-graineddataflow). Макропотоковая обработка сводится к потоковому вы-полнению нитей, в то время как внутри отдельной нити характер выполнения фон-неймановский. Порядок обработки нитей меняется динамически в процессе вычислений, а последовательность команд в пределах нити определена при ком-пиляции статически. Структура макропотоковой ВС представлена на рис. 14.15.

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

Отличие макропотоковой системы от обычной потоковой ВС состоит в организации внутреннего управляющего конвейера, где последовательность вы-полнения команд задается счетчиком команд, как в фон-неймановских маши- нах. Этот конвейер идентичен обычному конвейеру команд.

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

Существуют две формы макропотоковой обработки: без блокированияис блокированием. В модели без блокирования выполнение нити не может быть начато, пока не получены все необходимые данные. Будучи запущенной, нить выполняется до конца без приостановки. В варианте с блокированием запуск нити может быть произведен до получения всех операндов. Когда требуется отсутствующий операнд, нить приостанавливается (блокируется), а возобновле-ние выполнения откладывается на некоторое время. Процессор запоминает всю необходимую информацию о состоянии и загружает на выполнение другую готовую нить. Модель с блокированием обеспечивает более гибкий подход к формированию нитей за счет дополнительной аппаратуры для хранения блоки-рованных нитей. Это выражается в возможности использования более длинных нитей.

Возможна также потоковая обработка переменного уровня, когда узлы соответствуют как простым операциям, так и сложным последовательным процедурам. Этот случай называется комбинированной обработкой с потоками данных и потоками управления(combineddataflow/controlflow).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]