Вычислительные машины потока данных
По типу управления параллельные вычислительные машины можно разделить на традиционные вычислительные машины с программно-логическим управлением и вычислительные машины потока данных (Data Flow Machine). Большинство современных вычислительных систем являются системами с программно-логическим управлением.
В машинах потока данных вычисления инициируется не очередными командами программы, а готовностью к обработке необходимых данных. Операнды каждой команды снабжаются флагами готовности к обработке – тэгами:
где КОП – код операции. О готовности операнда сигнализирует состояние «1» соответствующего тэга. Если не все тэги операции установлены в состояние «1», то команда находится в состояние «ожидание». При установке всех тэгов в состояние «1» команда переводится в состояние «готова к выполнению». На каждом такте готовые к исполнению команды распределяются коммутатором по процессорам (см. рис. 1).
Потенциально такой подход позволяет достичь высокой степени параллелизма. Эффективность потоковых машин во многом определяется программированием, от которого требуется формулировка задачи в терминах параллельных и независимых операций.
Одной из основных проблем при создании потоковых машин является проблема реализации циклов. Рассмотрим поток данных, который имеются два цикла, подготавливающие данные друг для друга - см. рис. 2, где a1 – d1, a2 – d2 – операторы программы, а стрелки показываю направление потока данных. Если, к примеру, первый цикл вторично подошел к точке d1, где требуются данные a2 от второго цикла, то необходим механизм, который позволял бы первому циклу узнать, не устарели ли требуемые ему данные a2 и не нужно ли подождать, пока они обновятся? Кроме того, из приведенного примера видно, что без специального механизма инициализации циклов вычисления в обоих циклах не сможет начаться.
Рис. 1. Структура вычислительной системы потока данных.
Рис. 2. Поток данных с взаимодействующими циклами.
Известно много проектов потоковых вычислительных машин, например, машины Tagged Token и Monsoon (США); Sigma, EMS и EMC-4 (Япония) и др. В России также ведутся работы в области потоковых вычислений.
ЭВМ с архитектурой потока данных в настоящее время промышленно не выпускаются. С другой стороны, элементы потоковых машин нашли применение в современных суперскалярных процессорах (например, в микропроцессорах Intel Pentium Pro, HP РА-8000) и процессорах с длинным командным словом (VLIW).