Вычислительные машины потока данных.
По типу управления параллельные вычислительные машины можно разделить на традиционные вычислительные машины с программно-логическим управлением и вычислительные машины потока данных (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).
Ассоциативные вычислительные машины.
Во все возрастающей степени вычислительные машины используются не для решения вычислительных задач, а для задач хранения, поиска и преобразования данных. Для решения таких задач традиционные архитектуры вычислительных машин, ориентированных на адресную обработку данных, оказываются малоприспособленными. Рассмотрим, например, типичный запрос к базе данных
SELECT имя FROM сотрудники WHERE возраст < 30 AND зарплата > 10000.
Здесь имена служащих выбираются из базы данных не по адресу, а по содержимому полей "возраст" и "зарплата". Этот способ адресации называется ассоциативной адресацией.
В современных компьютерах с традиционной архитектурой ассоциативная адресация, по сути, эмулируется путем создания специальных таблица для перевода ассоциативного запроса в соответствующий адрес.
В ассоциативных вычислительных машинах ассоциативная адресация реализуется с помощью ассоциативного запоминающего устройства (АЗУ) – см. рис. 3, где РгАП - регистр ассоциативных признаков; РгМ - регистр маски; РгИА - регистр индикаторов адреса. В АЗУ могут быть и другие элементы, наличие и функции которых определяются способом использования АЗУ.
Рис. 3.  Структура ассоциативного запоминающего устройства.
Выборка информации из ассоциативного запоминающего устройства происходит по следующей схеме (принято, что разрядность ячеек запоминающего массива равна m и в исходном состоянии все разряды регистра индикаторов адреса имеют значение «1»).
  1. В регистр ассоциативных признаков из устройства управления передается бинарный вектор признаков искомой информации, имеющий от 1 до разрядов.
  2. Если для выборки информации должен использоваться весь вектор признаков, то он без изменения поступает на схему сравнения; в противном случае - ненужные разряды этого вектора маскируются с помощью регистра маски. Будем говорить, что на схему сравнения поступает маскированный вектор признаков.
  3. Производится сравнение содержимого первого разряда всех ячеек запоминающего массива с содержимым первого разряда маскированного вектора признаков. Если содержимое первого разряда ячейки с номером не совпадает с содержимым первого разряда регистра ассоциативных признаков, то соответствующий этой ячейке разряд регистра индикаторов адреса устанавливается в состояние «0».
  4. Аналогично производится сравнение второго разряда всех ячеек запоминающего массива с содержимым второго разряда регистра ассоциативных признаков. И т.д. до исчерпания всех разрядов. В результате в регистре индикаторов адреса в состоянии «1» останутся те разряды, которые соответствуют ячейкам запоминающего массива, содержащим информацию, совпадающую с записанной в маскированном векторе признаков.
  5. Информация из отобранных ячеек считывается в некоторой последовательности, определяемой устройством управления
Запись новой информации в запоминающий массив производится без указания номера ячейки. Для этого один из разрядов каждой ячейки используется для указания ее занятости, что позволяет осуществлять поиск свободных ячеек по рассмотренной выше схеме.
Обычно ассоциативные запоминающие устройства строятся таким образом, что кроме ассоциативной допускается и прямая адресация данных.
Из описанной схемы работы ассоциативного запоминающего устройства видно, что время поиска информации в запоминающем массиве зависит только от числа разрядов в маскированный вектор признаков, но не зависит от числа ячеек запоминающего массива. Этим обстоятельством определяется важное преимущество ассоциативного запоминающего устройства перед адресными запоминающими устройствами (поскольку в адресных запоминающих устройствах при операции поиска может быть необходим перебор всех ячеек запоминающего массива).
С точки зрения предмета курса, главным достоинством ассоциативного запоминающего устройства является то, что с помощью этого устройства быстро и просто формируется нескольких параллельных потоков идентичной информации, которая может обрабатываться параллельно. Именно это обстоятельство позволяет на основе ассоциативных запоминающих устройств строить ассоциативные вычислительные машины, относящиеся к классу SIMD-систем. В этих машинах разные процессоры параллельно обрабатывают указанные потоки информации.
Наиболее характерным представителем группы ассоциативных вычислительных машин является система STARAN (США). В отличие от рассмотренной выше схемы ассоциативной памяти, ассоциативная память STARAN является ассоциативной памятью с многомерным доступом , т. е. в нее можно обратиться как поразрядно, так и пословно. Каждому слову памяти в системе соответствует процессорный элемент.