Матричные вычислительные системы
Матричные вычислительные системы - наиболее распространенные представители класса SIMD, лучше всего приспособленные для решения задач, характеризующихся параллелизмом независимых данных. Матричная система состоит из множества процессорных элементов, работающих параллельно и обрабатывающих свой поток данных.
Назначение матричных вычислительных систем - обработка больших массивов данных. В основе матричных систем лежит матричный процессор (array processor), состоящий из массива процессорных элементов (ПЭ). Такие системы имеют общее управляющее устройство, генерирующее поток команд, и большое число ПЭ, работающих параллельно и обрабатывающих каждый свой поток данных. Однако на практике, чтобы обеспечить достаточную эффективность системы при решении широкого круга задач, необходимо организовать связи между процессорными элементами так, чтобы наиболее полно загрузить процессоры работой. Именно характер связей между ПЭ и определяет разные свойства системы. Подобная схема применима и для векторных вычислений.
Между матричными и векторными системами есть существенная разница. Матричный процессор интегрирует множество идентичных функциональных блоков (ФБ), логически объединенных в матрицу и работающих в SIMD-стиле. Не столь существенно, как конструктивно реализована матрица процессорных элементов - на едином кристалле или на нескольких. Важен сам принцип - ФБ логически скомпонованы в матрицу и работают синхронно, то есть присутствует только один поток команд для всех. Векторный процессор имеет встроенные команды для обработки векторов данных, что позволяет эффективно загрузить конвейер из функциональных блоков. В свою очередь, векторные процессоры проще использовать, потому что команды для обработки векторов - это более удобная для человека модель программирования, чем SIMD.
Параллельную обработку множественных элементов данных обеспечивает массив процессорных элементов (МПЭ). Единый поток команд, управляющий обработкой данных в МПЭ, генерируется контроллером массива процессорных элементов (КМП). КМП выполняет последовательный программный код, реализует операции условного и безусловного переходов, транслирует в МПЭ команды, данные и сигналы управления. Команды обрабатываются процессорными элементами в режиме жесткой синхронизации. Сигналы управления используются для синхронизации команд и пересылок, а также для управления процессом вычислений, в частности определяют, какие ПЭ массива должны выполнять операцию, а какие - нет. Команды, данные и сигналы управления передаются из КМП в массив процессорных элементов по шине широковещательной рассылки. Поскольку выполнение операций условного перехода зависит от результатов вычислений, результаты обработки данных в массиве процессоров транслируются в КМП по шине результата.
Для обеспечения пользователя удобным интерфейсом при создании и отладке программ в состав подобных ВС обычно включают фронтальную ВМ (front-end computer). В роли такой ВМ выступает универсальная вычислительная машина, на которую дополнительно возлагается задача загрузки программ и данных в КМП. Кроме того, такая загрузка может производиться и напрямую с устройств ввода/вывода, например с магнитных дисков. После загрузки КМП приступает к выполнению программы, транслируя в МПЭ по широковещательной шине соответствующие SIMD-команды.
Рассматривая массив ПЭ, следует учитывать, что для хранения множественных наборов данных в нем, помимо множества процессорных элементов, должно присутствовать и множество модулей памяти. Кроме того, в массиве должна быть реализована сеть взаимосвязей, как между ПЭ, так и между процессорными элементами и модулями памяти. Таким образом, под терминоммассив процессорных элементов понимают блок, состоящий из собственно процессорных элементов, модулей памяти и сети соединений.
Дополнительную гибкость при работе с рассматриваемой системой обеспечивает механизм маскирования, позволяющий вовлекать в операции лишь определенное подмножество ПЭ массива. Маскирование возможно как на стадии компиляции, так и на этапе выполнения, при этом ПЭ, исключенные путем установки в ноль соответствующих битов маски, во время выполнения команды простаивают.