Вызывавшие сомнения в своей перспективности еще в середине 80-х годов параллельные архитектуры сегодня общепризнанны. Но достигнут ли уже предел совершенствования архитектур? Похоже, нет: их темп развития только возрос.
Повышение производительности вычислительных установок обычно достигается за счет увеличения тактовой частоты работы элементов и количества этих элементов, позволяющего вводить параллелизм обработки и программируемость структуры [1]. Однако совершенствование вычислительных систем всегда сопровождал разрыв между быстродействием логических элементов и элементов памяти. Этот разрыв при возрастании степени интеграции и быстродействия больших интегральных схем (БИС) имеет тенденцию к увеличению. На каждом уровне развития элементной базы в силу обстоятельств, обусловленных необходимостью преодоления данного разрыва, ограничением на размер и количество выводов у корпусов микросхем, имеющимися средствами автоматизации программирования одни архитектуры становились предпочтительнее других — скажем, по показателю «производительность/стоимость».
Дискретная элементная база и интегральные схемы малой и средней интеграции позволяли изготовить процессор с произвольной архитектурой при существенном ограничении на общий объем используемого оборудования. Для обеспечения высокой производительности было необходимо соответствующее количество регистров и функциональных устройств, однако требуемый для их создания объем электронных компонентов, паяных и разъемных соединений определялся надежностью создаваемого процессора, стоимостью и энергопотреблением. В этих условиях конструкторы процессоров предложили разнообразные архитектуры, каждая из которых в своей проблемной области обеспечивала наивысшее значение показателя «производительность/стоимость». К числу таких архитектур следует отнести векторно-конвейерные процессоры и ассоциативные процессоры с SIMD-архитектурой, все обрабатывающие процессорные элементы которых выполняют команды одного потока, выдаваемого одним общим устройством управления. В период использования полупроводниковых схем малой и средней интеграции было создано несколько типов таких процессоров, например, STARAN [2], DAP [3], Connection Machine [4], состоящих из большого числа однобитных процессорных элементов со встроенной в каждый из них локальной памятью. Значительный рост степени интеграции при существенно меньшем росте количества выводов корпусов привел к ситуации, когда в одной БИС могло разместиться много процессорных элементов, однако их явно не хватало для создания полноценного SIMD-процессора. Объединению совокупности таких интегральных схем в один процессор препятствовало малое число выводов, не позволявшее подсоединить к процессорному элементу память и создать эффективную сеть связи между элементами. Та же проблема возникала и при попытке построения векторно-конвейерных процессоров: блоки, реализованные на БИС, имели бы количество соединений с другими БИС, намного превышающее число их выводов. Векторно-конвейерные процессоры, такие как CRAY-1 [5], венчали развитие процессоров, строящихся из дискретных компонентов. Архитектура векторно-конвейерных процессоров, по-видимому, оптимальна для дискретной элементной базы по критерию «производительность/размер».
В 80-х годах появились микропроцессоры, которые существенно превзошли по соотношению «производительность/стоимость» специально разрабатываемые многокристальные процессоры. Особенности проектирования и изготовления СБИС, в том числе и микропроцессоров, делают экономически оправданным только их массовое производство, что практически исключило возможность создания специализированных кристаллов для многокристальных процессоров. Сложилась ситуация, когда многокристальный процессор на момент начала проектирования, имеющий экстремальные оценки производительности, после своего изготовления, потребовавшего ряда лет, уже существенно уступал своим современникам — универсальным серийным микропроцессорам. Массово выпускаемые микропроцессоры стали использоваться для производства всех типов вычислительных систем [6].
Коль скоро микропроцессоры стали основной элементной базой, то единственное, что из них можно строить — параллельные вычислительные системы, образуемые путем объединения коммуникационной средой совокупности процессоров, блоков памяти и устройств ввода-вывода.
Параллельные системы по назначению и используемой элементной базе можно разбить на четыре класса:
· универсальные с фиксированной структурой, строящиеся из серийных универсальных микропроцессоров;
· специализированные с фиксированной структурой, строящиеся из микропроцессоров, ориентированных на исполнение определенных вычислений;
· универсальные с программируемой структурой, настраиваемые на аппаратурную реализацию исполняемых вычислений;
· специализированные с программируемой структурой, настраиваемые на аппаратно-программную реализацию исполняемых вычислений.